[jboss-cvs] jboss-seam/src/main/org/jboss/seam/persistence ...
Gavin King
gavin.king at jboss.com
Thu Oct 12 04:32:38 EDT 2006
User: gavin
Date: 06/10/12 04:32:38
Added: src/main/org/jboss/seam/persistence
HibernatePersistenceProvider.java
PersistenceProvider.java
Log:
pluggable peristence provider strategies
Revision Changes Path
1.1 date: 2006/10/12 08:32:38; author: gavin; state: Exp;jboss-seam/src/main/org/jboss/seam/persistence/HibernatePersistenceProvider.java
Index: HibernatePersistenceProvider.java
===================================================================
package org.jboss.seam.persistence;
import javax.persistence.EntityManager;
import org.hibernate.FlushMode;
import org.hibernate.Session;
import org.jboss.seam.InterceptionType;
import org.jboss.seam.ScopeType;
import org.jboss.seam.annotations.Intercept;
import org.jboss.seam.annotations.Name;
import org.jboss.seam.annotations.Scope;
@Name("org.jboss.seam.persistence.persistenceProvider")
@Scope(ScopeType.STATELESS)
@Intercept(InterceptionType.NEVER)
public class HibernatePersistenceProvider extends PersistenceProvider
{
public void setFlushModeManual(EntityManager entityManager)
{
( (Session) entityManager.getDelegate() ).setFlushMode(FlushMode.NEVER);
}
public boolean isDirty(EntityManager entityManager)
{
return ( (Session) entityManager.getDelegate() ).isDirty();
}
public Object getId(Object bean, EntityManager entityManager)
{
return ( (Session) entityManager.getDelegate() ).getIdentifier(bean);
}
}
1.1 date: 2006/10/12 08:32:38; author: gavin; state: Exp;jboss-seam/src/main/org/jboss/seam/persistence/PersistenceProvider.java
Index: PersistenceProvider.java
===================================================================
package org.jboss.seam.persistence;
import javax.persistence.EntityManager;
import org.jboss.seam.Component;
import org.jboss.seam.InterceptionType;
import org.jboss.seam.ScopeType;
import org.jboss.seam.annotations.Intercept;
import org.jboss.seam.annotations.Name;
import org.jboss.seam.annotations.Scope;
@Name("org.jboss.seam.persistence.persistenceProvider")
@Scope(ScopeType.STATELESS)
@Intercept(InterceptionType.NEVER)
public class PersistenceProvider
{
public void setFlushModeManual(EntityManager entityManager)
{
throw new IllegalArgumentException("For use of FlushMode.MANUAL, please use Hibernate as the persistence provider or provide a custom PersistenceProvider");
}
public boolean isDirty(EntityManager entityManager)
{
return true; //best we can do!
}
public Object getId(Object bean, EntityManager entityManager)
{
throw new IllegalArgumentException("For Seam-managed persistence contexts, please use Hibernate as the persistence provider or provide a custom PersistenceProvider");
}
public static PersistenceProvider instance()
{
return (PersistenceProvider) Component.getInstance(PersistenceProvider.class, ScopeType.STATELESS, true);
}
}
More information about the jboss-cvs-commits
mailing list