[jboss-cvs] jboss-seam/src/main/org/jboss/seam/persistence ...
Gavin King
gavin.king at jboss.com
Mon Jun 18 01:57:35 EDT 2007
User: gavin
Date: 07/06/18 01:57:35
Modified: src/main/org/jboss/seam/persistence
HibernatePersistenceProvider.java
PersistenceProvider.java
Log:
JBSEAM-942, optimistic locking for passivated entities
Revision Changes Path
1.10 +11 -0 jboss-seam/src/main/org/jboss/seam/persistence/HibernatePersistenceProvider.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: HibernatePersistenceProvider.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/persistence/HibernatePersistenceProvider.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -b -r1.9 -r1.10
--- HibernatePersistenceProvider.java 18 Jun 2007 03:36:41 -0000 1.9
+++ HibernatePersistenceProvider.java 18 Jun 2007 05:57:35 -0000 1.10
@@ -7,8 +7,10 @@
import javax.persistence.EntityManager;
import javax.transaction.Synchronization;
+import org.hibernate.EntityMode;
import org.hibernate.FlushMode;
import org.hibernate.Session;
+import org.hibernate.metadata.ClassMetadata;
import org.jboss.seam.InterceptionType;
import org.jboss.seam.ScopeType;
import org.jboss.seam.annotations.FlushModeType;
@@ -53,6 +55,15 @@
}
@Override
+ public Object getVersion(Object bean, EntityManager entityManager)
+ {
+ ClassMetadata classMetadata = getSession(entityManager).getSessionFactory()
+ .getClassMetadata( bean.getClass() );
+ return classMetadata.isVersioned() ?
+ classMetadata.getVersion(bean, EntityMode.POJO) : null;
+ }
+
+ @Override
public void enableFilter(Filter f, EntityManager entityManager)
{
org.hibernate.Filter filter = getSession(entityManager).enableFilter( f.getName() );
1.12 +10 -0 jboss-seam/src/main/org/jboss/seam/persistence/PersistenceProvider.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: PersistenceProvider.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/persistence/PersistenceProvider.java,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -b -r1.11 -r1.12
--- PersistenceProvider.java 18 Jun 2007 03:44:45 -0000 1.11
+++ PersistenceProvider.java 18 Jun 2007 05:57:35 -0000 1.12
@@ -65,6 +65,16 @@
}
/**
+ * Get the value of the entity version attribute.
+ *
+ * @param bean a managed entity instance
+ */
+ public Object getVersion(Object bean, EntityManager entityManager)
+ {
+ return Entity.forClass( bean.getClass() ).getVersion(bean);
+ }
+
+ /**
* Enable a Filter. This is here just especially for Hibernate,
* since we well know that other products don't have such cool
* features.
More information about the jboss-cvs-commits
mailing list