Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Taal2011-05-12 09:07:09 +0000
committerMartin Taal2011-05-12 09:07:09 +0000
commit1d51ff38dbbc07736b0486ec6471a15e8bde6f4d (patch)
treec573c4c64cbd49001c4dda2c96fdecf6a29b0017 /plugins/org.eclipse.emf.cdo.server.hibernate
parent37b119d9b81c213d9d0c8e96e34e005160899f6d (diff)
downloadcdo-1d51ff38dbbc07736b0486ec6471a15e8bde6f4d.tar.gz
cdo-1d51ff38dbbc07736b0486ec6471a15e8bde6f4d.tar.xz
cdo-1d51ff38dbbc07736b0486ec6471a15e8bde6f4d.zip
Fixes bugzilla 345432 - [Hibernate] Small robustness change
Fixes bugzilla 345550 - [Hibernate] solve compile warnings and implement remove of system propertie
Diffstat (limited to 'plugins/org.eclipse.emf.cdo.server.hibernate')
-rw-r--r--plugins/org.eclipse.emf.cdo.server.hibernate/src/org/eclipse/emf/cdo/server/internal/hibernate/HibernateCDOPackageUnitDTO.java3
-rw-r--r--plugins/org.eclipse.emf.cdo.server.hibernate/src/org/eclipse/emf/cdo/server/internal/hibernate/HibernateStore.java29
-rw-r--r--plugins/org.eclipse.emf.cdo.server.hibernate/src/org/eclipse/emf/cdo/server/internal/hibernate/HibernateStoreAccessor.java110
-rw-r--r--plugins/org.eclipse.emf.cdo.server.hibernate/src/org/eclipse/emf/cdo/server/internal/hibernate/tuplizer/CDOCustomTypeUserType.java4
-rw-r--r--plugins/org.eclipse.emf.cdo.server.hibernate/src/org/eclipse/emf/cdo/server/internal/hibernate/tuplizer/CDOIDAnyUserType.java4
-rw-r--r--plugins/org.eclipse.emf.cdo.server.hibernate/src/org/eclipse/emf/cdo/server/internal/hibernate/tuplizer/CDOIDUserType.java4
-rw-r--r--plugins/org.eclipse.emf.cdo.server.hibernate/src/org/eclipse/emf/cdo/server/internal/hibernate/tuplizer/CDOLobUserType.java4
-rw-r--r--plugins/org.eclipse.emf.cdo.server.hibernate/src/org/eclipse/emf/cdo/server/internal/hibernate/tuplizer/CDORevisionProxyFactory.java8
-rw-r--r--plugins/org.eclipse.emf.cdo.server.hibernate/src/org/eclipse/emf/cdo/server/internal/hibernate/tuplizer/CDOTypeUserType.java4
-rw-r--r--plugins/org.eclipse.emf.cdo.server.hibernate/src/org/eclipse/emf/cdo/server/internal/hibernate/tuplizer/CDOUUIDHexGenerator.java2
10 files changed, 141 insertions, 31 deletions
diff --git a/plugins/org.eclipse.emf.cdo.server.hibernate/src/org/eclipse/emf/cdo/server/internal/hibernate/HibernateCDOPackageUnitDTO.java b/plugins/org.eclipse.emf.cdo.server.hibernate/src/org/eclipse/emf/cdo/server/internal/hibernate/HibernateCDOPackageUnitDTO.java
index 02e2425b8f..fc51c2c4ea 100644
--- a/plugins/org.eclipse.emf.cdo.server.hibernate/src/org/eclipse/emf/cdo/server/internal/hibernate/HibernateCDOPackageUnitDTO.java
+++ b/plugins/org.eclipse.emf.cdo.server.hibernate/src/org/eclipse/emf/cdo/server/internal/hibernate/HibernateCDOPackageUnitDTO.java
@@ -127,8 +127,11 @@ public class HibernateCDOPackageUnitDTO
}
}
+ @SuppressWarnings("deprecation")
public Blob getEPackageBlob()
{
+ // deprecated usage, non-deprecated api uses a session
+ // TODO: research which session to use
return Hibernate.createBlob(getEPackageByteArray());
}
diff --git a/plugins/org.eclipse.emf.cdo.server.hibernate/src/org/eclipse/emf/cdo/server/internal/hibernate/HibernateStore.java b/plugins/org.eclipse.emf.cdo.server.hibernate/src/org/eclipse/emf/cdo/server/internal/hibernate/HibernateStore.java
index ca873d6d70..25b0e1ba7a 100644
--- a/plugins/org.eclipse.emf.cdo.server.hibernate/src/org/eclipse/emf/cdo/server/internal/hibernate/HibernateStore.java
+++ b/plugins/org.eclipse.emf.cdo.server.hibernate/src/org/eclipse/emf/cdo/server/internal/hibernate/HibernateStore.java
@@ -35,12 +35,12 @@ import org.eclipse.net4j.util.om.trace.ContextTracer;
import org.eclipse.emf.ecore.EAnnotation;
import org.eclipse.emf.ecore.EClass;
-import org.hibernate.Hibernate;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import org.hibernate.cfg.Environment;
import org.hibernate.mapping.PersistentClass;
import org.hibernate.tool.hbm2ddl.SchemaExport;
+import org.hibernate.type.StandardBasicTypes;
import java.io.InputStream;
import java.sql.Connection;
@@ -324,11 +324,11 @@ public class HibernateStore extends Store implements IHibernateStore
}
final String idTypeStr = typeEAnnotation.getDetails().get(ID_TYPE_EANNOTATION_KEY);
- if (Hibernate.STRING.getName().equals(idTypeStr))
+ if (StandardBasicTypes.STRING.getName().equals(idTypeStr))
{
return HibernateUtil.getInstance().createCDOID(classifierRef, idPart);
}
- else if (Hibernate.LONG.getName().equals(idTypeStr))
+ else if (StandardBasicTypes.LONG.getName().equals(idTypeStr))
{
return HibernateUtil.getInstance().createCDOID(classifierRef, new Long(idPart));
}
@@ -352,7 +352,20 @@ public class HibernateStore extends Store implements IHibernateStore
public Map<String, String> getPersistentProperties(Set<String> names)
{
- return packageHandler.getSystemProperties();
+ final Map<String, String> result = packageHandler.getSystemProperties();
+ if (names == null || names.isEmpty())
+ {
+ return result;
+ }
+ final Map<String, String> filteredResult = new HashMap<String, String>();
+ for (String name : names)
+ {
+ if (result.containsKey(name))
+ {
+ filteredResult.put(name, result.get(name));
+ }
+ }
+ return filteredResult;
}
public void setPersistentProperties(Map<String, String> properties)
@@ -362,8 +375,12 @@ public class HibernateStore extends Store implements IHibernateStore
public void removePersistentProperties(Set<String> names)
{
- // TODO: implement HibernateStore.removePropertyValues(names)
- throw new UnsupportedOperationException();
+ final Map<String, String> props = getPersistentProperties(null);
+ for (String name : names)
+ {
+ props.remove(name);
+ }
+ setPersistentProperties(props);
}
public synchronized int getNextPackageID()
diff --git a/plugins/org.eclipse.emf.cdo.server.hibernate/src/org/eclipse/emf/cdo/server/internal/hibernate/HibernateStoreAccessor.java b/plugins/org.eclipse.emf.cdo.server.hibernate/src/org/eclipse/emf/cdo/server/internal/hibernate/HibernateStoreAccessor.java
index 160ac9050c..6a8d50f2a8 100644
--- a/plugins/org.eclipse.emf.cdo.server.hibernate/src/org/eclipse/emf/cdo/server/internal/hibernate/HibernateStoreAccessor.java
+++ b/plugins/org.eclipse.emf.cdo.server.hibernate/src/org/eclipse/emf/cdo/server/internal/hibernate/HibernateStoreAccessor.java
@@ -56,6 +56,7 @@ import org.eclipse.net4j.util.om.monitor.OMMonitor;
import org.eclipse.net4j.util.om.trace.ContextTracer;
import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EClassifier;
import org.eclipse.emf.ecore.EPackage;
import org.eclipse.emf.ecore.EReference;
import org.eclipse.emf.ecore.EStructuralFeature;
@@ -75,7 +76,9 @@ import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.Reader;
+import java.io.Writer;
import java.sql.Clob;
+import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
@@ -401,7 +404,7 @@ public class HibernateStoreAccessor extends StoreAccessor implements IHibernateS
public void loadCommitInfos(CDOBranch branch, long startTime, long endTime, CDOCommitInfoHandler handler)
{
// TODO: implement HibernateStoreAccessor.loadCommitInfos(branch, startTime, endTime, handler)
- throw new UnsupportedOperationException();
+ // throw new UnsupportedOperationException();
}
public Set<CDOID> readChangeSet(OMMonitor monitor, CDOChangeSetSegment... segments)
@@ -413,8 +416,48 @@ public class HibernateStoreAccessor extends StoreAccessor implements IHibernateS
public void handleRevisions(EClass eClass, CDOBranch branch, long timeStamp, boolean exactTime,
CDORevisionHandler handler)
{
- // TODO: implement HibernateStoreAccessor.handleRevisions(eClass, branch, timeStamp, exactTime, handler)
- throw new UnsupportedOperationException();
+ if (eClass != null)
+ {
+ handleRevisionsByEClass(eClass, handler);
+ }
+ else
+ {
+ for (EPackage ePackage : getStore().getPackageHandler().getEPackages())
+ {
+ for (EClassifier eClassifier : ePackage.getEClassifiers())
+ {
+ if (eClassifier instanceof EClass)
+ {
+ final EClass eClazz = (EClass)eClassifier;
+ try
+ {
+ getStore().getEntityName(eClazz);
+ }
+ catch (IllegalArgumentException ex)
+ {
+ // a non-mapped eclass
+ continue;
+ }
+ handleRevisionsByEClass(eClazz, handler);
+ }
+ }
+ }
+ }
+ }
+
+ private void handleRevisionsByEClass(EClass eClass, CDORevisionHandler handler)
+ {
+ // get a transaction, the hibernateStoreAccessor is placed in a threadlocal
+ // so all db access uses the same session.
+ final Session session = getHibernateSession();
+
+ // create the query
+ final Query query = session.createQuery("select e from " + getStore().getEntityName(eClass) + " e");
+ for (Object o : query.list())
+ {
+ handler.handleRevision((CDORevision)o);
+ }
+ session.clear();
}
/**
@@ -724,7 +767,8 @@ public class HibernateStoreAccessor extends StoreAccessor implements IHibernateS
qry.setParameter("id", HibernateUtil.getInstance().getIdValue(id)); //$NON-NLS-1$
if (qry.executeUpdate() != 1)
{
- throw new IllegalStateException("Not able to update container columns of " + entityName + " with id " + id); //$NON-NLS-1$ //$NON-NLS-2$
+ OM.LOG.error("Not able to update container columns of " + entityName + " with id " + id); //$NON-NLS-1$ //$NON-NLS-2$
+ // throw new IllegalStateException("Not able to update container columns of " + entityName + " with id " + id); //$NON-NLS-1$ //$NON-NLS-2$
}
}
}
@@ -743,7 +787,8 @@ public class HibernateStoreAccessor extends StoreAccessor implements IHibernateS
qry.setParameter("id", HibernateUtil.getInstance().getIdValue(id)); //$NON-NLS-1$
if (qry.executeUpdate() != 1)
{
- throw new IllegalStateException("Not able to update container columns of " + entityName + " with id " + id); //$NON-NLS-1$ //$NON-NLS-2$
+ OM.LOG.error("Not able to update resources ids of " + entityName + " with id " + id); //$NON-NLS-1$ //$NON-NLS-2$
+ // throw new IllegalStateException("Not able to update container columns of " + entityName + " with id " + id); //$NON-NLS-1$ //$NON-NLS-2$
}
}
}
@@ -828,8 +873,53 @@ public class HibernateStoreAccessor extends StoreAccessor implements IHibernateS
public void handleLobs(long fromTime, long toTime, CDOLobHandler handler) throws IOException
{
- // TODO: implement HibernateStoreAccessor.enclosing_method(enclosing_method_arguments)
- throw new UnsupportedOperationException();
+ final Session session = getHibernateSession();
+ final Query qry = session.createQuery("select c from " + HibernateStoreLob.class.getName() + " as c");
+
+ try
+ {
+ for (Object o : qry.list())
+ {
+ final HibernateStoreLob lob = (HibernateStoreLob)o;
+ if (lob.getBlob() != null)
+ {
+ final OutputStream out = handler.handleBlob(HexUtil.hexToBytes(lob.getId()), lob.getSize());
+ if (out != null)
+ {
+ final InputStream in = lob.getBlob().getBinaryStream();
+ try
+ {
+ IOUtil.copyBinary(in, out, lob.getSize());
+ }
+ finally
+ {
+ IOUtil.close(out);
+ }
+ }
+ }
+ else
+ {
+ final Clob clob = lob.getClob();
+ Reader in = clob.getCharacterStream();
+ Writer out = handler.handleClob(HexUtil.hexToBytes(lob.getId()), lob.getSize());
+ if (out != null)
+ {
+ try
+ {
+ IOUtil.copyCharacter(in, out, lob.getSize());
+ }
+ finally
+ {
+ IOUtil.close(out);
+ }
+ }
+ }
+ }
+ }
+ catch (SQLException ex)
+ {
+ throw new IllegalStateException(ex);
+ }
}
public void loadLob(byte[] id, OutputStream out) throws IOException
@@ -864,6 +954,7 @@ public class HibernateStoreAccessor extends StoreAccessor implements IHibernateS
}
}
+ @SuppressWarnings("deprecation")
@Override
protected void writeBlob(byte[] id, long size, InputStream inputStream) throws IOException
{
@@ -874,6 +965,8 @@ public class HibernateStoreAccessor extends StoreAccessor implements IHibernateS
}
else
{
+ // deprecated usage, non-deprecated api uses a session
+ // TODO: research which session to use
lob.setBlob(Hibernate.createBlob(inputStream, (int)size));
lob.setSize((int)size);
lob.setClob(null);
@@ -881,6 +974,7 @@ public class HibernateStoreAccessor extends StoreAccessor implements IHibernateS
}
}
+ @SuppressWarnings("deprecation")
@Override
protected void writeClob(byte[] id, long size, Reader reader) throws IOException
{
@@ -891,6 +985,8 @@ public class HibernateStoreAccessor extends StoreAccessor implements IHibernateS
}
else
{
+ // deprecated usage, non-deprecated api uses a session
+ // TODO: research which session to use
lob.setClob(Hibernate.createClob(reader, (int)size));
lob.setSize((int)size);
lob.setBlob(null);
diff --git a/plugins/org.eclipse.emf.cdo.server.hibernate/src/org/eclipse/emf/cdo/server/internal/hibernate/tuplizer/CDOCustomTypeUserType.java b/plugins/org.eclipse.emf.cdo.server.hibernate/src/org/eclipse/emf/cdo/server/internal/hibernate/tuplizer/CDOCustomTypeUserType.java
index b06bb906fc..0cf6a26e9b 100644
--- a/plugins/org.eclipse.emf.cdo.server.hibernate/src/org/eclipse/emf/cdo/server/internal/hibernate/tuplizer/CDOCustomTypeUserType.java
+++ b/plugins/org.eclipse.emf.cdo.server.hibernate/src/org/eclipse/emf/cdo/server/internal/hibernate/tuplizer/CDOCustomTypeUserType.java
@@ -11,7 +11,7 @@
*/
package org.eclipse.emf.cdo.server.internal.hibernate.tuplizer;
-import org.hibernate.Hibernate;
+import org.hibernate.type.StandardBasicTypes;
import org.hibernate.usertype.ParameterizedType;
import org.hibernate.usertype.UserType;
@@ -72,7 +72,7 @@ public class CDOCustomTypeUserType implements UserType, ParameterizedType
{
try
{
- final String value = (String)Hibernate.STRING.nullSafeGet(rs, names[0]);
+ final String value = StandardBasicTypes.STRING.nullSafeGet(rs, names[0]);
if (rs.wasNull())
{
return null;
diff --git a/plugins/org.eclipse.emf.cdo.server.hibernate/src/org/eclipse/emf/cdo/server/internal/hibernate/tuplizer/CDOIDAnyUserType.java b/plugins/org.eclipse.emf.cdo.server.hibernate/src/org/eclipse/emf/cdo/server/internal/hibernate/tuplizer/CDOIDAnyUserType.java
index 1546d22c09..4a3a176578 100644
--- a/plugins/org.eclipse.emf.cdo.server.hibernate/src/org/eclipse/emf/cdo/server/internal/hibernate/tuplizer/CDOIDAnyUserType.java
+++ b/plugins/org.eclipse.emf.cdo.server.hibernate/src/org/eclipse/emf/cdo/server/internal/hibernate/tuplizer/CDOIDAnyUserType.java
@@ -15,7 +15,7 @@ import org.eclipse.emf.cdo.common.id.CDOID;
import org.eclipse.net4j.util.WrappedException;
-import org.hibernate.Hibernate;
+import org.hibernate.type.StandardBasicTypes;
import org.hibernate.usertype.UserType;
import java.io.Serializable;
@@ -79,7 +79,7 @@ public class CDOIDAnyUserType implements UserType
public Object nullSafeGet(ResultSet rs, String[] names, Object owner) throws SQLException
{
- final String value = (String)Hibernate.STRING.nullSafeGet(rs, names[0]);
+ final String value = StandardBasicTypes.STRING.nullSafeGet(rs, names[0]);
if (rs.wasNull())
{
return null;
diff --git a/plugins/org.eclipse.emf.cdo.server.hibernate/src/org/eclipse/emf/cdo/server/internal/hibernate/tuplizer/CDOIDUserType.java b/plugins/org.eclipse.emf.cdo.server.hibernate/src/org/eclipse/emf/cdo/server/internal/hibernate/tuplizer/CDOIDUserType.java
index 341d45dc50..391a9ca194 100644
--- a/plugins/org.eclipse.emf.cdo.server.hibernate/src/org/eclipse/emf/cdo/server/internal/hibernate/tuplizer/CDOIDUserType.java
+++ b/plugins/org.eclipse.emf.cdo.server.hibernate/src/org/eclipse/emf/cdo/server/internal/hibernate/tuplizer/CDOIDUserType.java
@@ -17,7 +17,7 @@ import org.eclipse.emf.cdo.common.id.CDOIDTemp;
import org.eclipse.emf.cdo.common.revision.CDORevision;
import org.eclipse.emf.cdo.server.internal.hibernate.HibernateUtil;
-import org.hibernate.Hibernate;
+import org.hibernate.type.StandardBasicTypes;
import org.hibernate.usertype.UserType;
import java.io.Serializable;
@@ -74,7 +74,7 @@ public class CDOIDUserType implements UserType
public Object nullSafeGet(ResultSet rs, String[] names, Object owner) throws SQLException
{
- final String value = (String)Hibernate.STRING.nullSafeGet(rs, names[0]);
+ final String value = StandardBasicTypes.STRING.nullSafeGet(rs, names[0]);
if (rs.wasNull())
{
return null;
diff --git a/plugins/org.eclipse.emf.cdo.server.hibernate/src/org/eclipse/emf/cdo/server/internal/hibernate/tuplizer/CDOLobUserType.java b/plugins/org.eclipse.emf.cdo.server.hibernate/src/org/eclipse/emf/cdo/server/internal/hibernate/tuplizer/CDOLobUserType.java
index 3a30549cf4..678ea3803f 100644
--- a/plugins/org.eclipse.emf.cdo.server.hibernate/src/org/eclipse/emf/cdo/server/internal/hibernate/tuplizer/CDOLobUserType.java
+++ b/plugins/org.eclipse.emf.cdo.server.hibernate/src/org/eclipse/emf/cdo/server/internal/hibernate/tuplizer/CDOLobUserType.java
@@ -17,7 +17,7 @@ import org.eclipse.emf.cdo.common.lob.CDOLob;
import org.eclipse.net4j.util.HexUtil;
-import org.hibernate.Hibernate;
+import org.hibernate.type.StandardBasicTypes;
import org.hibernate.usertype.ParameterizedType;
import org.hibernate.usertype.UserType;
@@ -79,7 +79,7 @@ public abstract class CDOLobUserType implements UserType, ParameterizedType
{
try
{
- final String value = (String)Hibernate.STRING.nullSafeGet(rs, names[0]);
+ final String value = StandardBasicTypes.STRING.nullSafeGet(rs, names[0]);
if (rs.wasNull())
{
return null;
diff --git a/plugins/org.eclipse.emf.cdo.server.hibernate/src/org/eclipse/emf/cdo/server/internal/hibernate/tuplizer/CDORevisionProxyFactory.java b/plugins/org.eclipse.emf.cdo.server.hibernate/src/org/eclipse/emf/cdo/server/internal/hibernate/tuplizer/CDORevisionProxyFactory.java
index 1bc27af673..80004e677a 100644
--- a/plugins/org.eclipse.emf.cdo.server.hibernate/src/org/eclipse/emf/cdo/server/internal/hibernate/tuplizer/CDORevisionProxyFactory.java
+++ b/plugins/org.eclipse.emf.cdo.server.hibernate/src/org/eclipse/emf/cdo/server/internal/hibernate/tuplizer/CDORevisionProxyFactory.java
@@ -14,7 +14,6 @@ import org.hibernate.HibernateException;
import org.hibernate.engine.SessionImplementor;
import org.hibernate.proxy.HibernateProxy;
import org.hibernate.proxy.ProxyFactory;
-import org.hibernate.type.AbstractComponentType;
import org.hibernate.type.CompositeType;
import java.io.Serializable;
@@ -34,7 +33,7 @@ public class CDORevisionProxyFactory implements ProxyFactory
@SuppressWarnings("rawtypes")
public void postInstantiate(String entityName, Class persistentClass, Set interfaces, Method getIdentifierMethod,
- Method setIdentifierMethod, AbstractComponentType componentIdType) throws HibernateException
+ Method setIdentifierMethod, CompositeType componentIdType) throws HibernateException
{
this.entityName = entityName;
}
@@ -44,11 +43,6 @@ public class CDORevisionProxyFactory implements ProxyFactory
return new CDORevisionProxyHibernate(new CDORevisionLazyInitializer(entityName, id, session));
}
- public void postInstantiate(String arg0, Class arg1, Set arg2, Method arg3, Method arg4, CompositeType arg5)
- throws HibernateException
- {
- }
-
public String getEntityName()
{
return entityName;
diff --git a/plugins/org.eclipse.emf.cdo.server.hibernate/src/org/eclipse/emf/cdo/server/internal/hibernate/tuplizer/CDOTypeUserType.java b/plugins/org.eclipse.emf.cdo.server.hibernate/src/org/eclipse/emf/cdo/server/internal/hibernate/tuplizer/CDOTypeUserType.java
index 66da1d1e83..d7c939ea4b 100644
--- a/plugins/org.eclipse.emf.cdo.server.hibernate/src/org/eclipse/emf/cdo/server/internal/hibernate/tuplizer/CDOTypeUserType.java
+++ b/plugins/org.eclipse.emf.cdo.server.hibernate/src/org/eclipse/emf/cdo/server/internal/hibernate/tuplizer/CDOTypeUserType.java
@@ -14,7 +14,7 @@ package org.eclipse.emf.cdo.server.internal.hibernate.tuplizer;
import org.eclipse.emf.cdo.common.model.CDOModelUtil;
import org.eclipse.emf.cdo.common.model.CDOType;
-import org.hibernate.Hibernate;
+import org.hibernate.type.StandardBasicTypes;
import org.hibernate.usertype.UserType;
import java.io.Serializable;
@@ -71,7 +71,7 @@ public class CDOTypeUserType implements UserType
public Object nullSafeGet(ResultSet rs, String[] names, Object owner) throws SQLException
{
- Integer value = (Integer)Hibernate.INTEGER.nullSafeGet(rs, names[0]);
+ Integer value = StandardBasicTypes.INTEGER.nullSafeGet(rs, names[0]);
if (rs.wasNull())
{
return null;
diff --git a/plugins/org.eclipse.emf.cdo.server.hibernate/src/org/eclipse/emf/cdo/server/internal/hibernate/tuplizer/CDOUUIDHexGenerator.java b/plugins/org.eclipse.emf.cdo.server.hibernate/src/org/eclipse/emf/cdo/server/internal/hibernate/tuplizer/CDOUUIDHexGenerator.java
index 2f956150d9..998818cdf1 100644
--- a/plugins/org.eclipse.emf.cdo.server.hibernate/src/org/eclipse/emf/cdo/server/internal/hibernate/tuplizer/CDOUUIDHexGenerator.java
+++ b/plugins/org.eclipse.emf.cdo.server.hibernate/src/org/eclipse/emf/cdo/server/internal/hibernate/tuplizer/CDOUUIDHexGenerator.java
@@ -38,7 +38,7 @@ public class CDOUUIDHexGenerator extends UUIDHexGenerator
}
final EntityPersister entityPersister = session.getEntityPersister(null, obj);
- final Serializable id = entityPersister.getIdentifier(obj, session.getEntityMode());
+ final Serializable id = entityPersister.getIdentifier(obj, session);
if (id != null)
{
return id;

Back to the top