Author: tchemit Date: 2012-05-17 00:54:07 +0200 (Thu, 17 May 2012) New Revision: 2491 Url: http://nuiton.org/repositories/revision/topia/2491 Log: let's create id on PreInstert event Modified: trunk/topia-persistence-hibernate/src/main/java/org/nuiton/topia/framework/TopiaHibernateEntityListener.java Modified: trunk/topia-persistence-hibernate/src/main/java/org/nuiton/topia/framework/TopiaHibernateEntityListener.java =================================================================== --- trunk/topia-persistence-hibernate/src/main/java/org/nuiton/topia/framework/TopiaHibernateEntityListener.java 2012-05-16 22:51:43 UTC (rev 2490) +++ trunk/topia-persistence-hibernate/src/main/java/org/nuiton/topia/framework/TopiaHibernateEntityListener.java 2012-05-16 22:54:07 UTC (rev 2491) @@ -2,9 +2,6 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.hibernate.Session; -import org.hibernate.ejb.AbstractEntityManagerImpl; -import org.hibernate.event.spi.AbstractEvent; import org.hibernate.event.spi.PostDeleteEvent; import org.hibernate.event.spi.PostDeleteEventListener; import org.hibernate.event.spi.PostInsertEvent; @@ -25,6 +22,8 @@ import org.nuiton.topia.TopiaException; import org.nuiton.topia.persistence.TopiaEntity; import org.nuiton.topia.persistence.TopiaEntityAbstract; +import org.nuiton.topia.persistence.TopiaId; +import org.nuiton.topia.persistence.TopiaPersistenceUtil; /** * @author Arnaud Thimel <thimel@codelutin.com> @@ -90,7 +89,7 @@ // } protected void attachContext(TopiaEntity entity, - TopiaContextImplementor context) { + TopiaContextImplementor context) { // FIXME AThimel 14/05/2012 http://nuiton.org/issues/2078 if (entity instanceof TopiaEntityAbstract) { TopiaEntityAbstract entityAbstract = (TopiaEntityAbstract) entity; @@ -100,8 +99,8 @@ } catch (TopiaException eee) { if (log.isWarnEnabled()) { log.warn("Impossible d'initialiser le TopiaContext" - + " sur cette entité : " + entityAbstract, - eee); + + " sur cette entité : " + entityAbstract, + eee); } } } @@ -120,7 +119,7 @@ // FIXME AThimel 14/05/2012 http://nuiton.org/issues/2078 if (entity instanceof TopiaEntityAbstract) { TopiaContext enitytContext = - ((TopiaEntityAbstract)entity).getTopiaContext(); + ((TopiaEntityAbstract) entity).getTopiaContext(); if (enitytContext instanceof TopiaContextImplementor) { result = (TopiaContextImplementor) enitytContext; } @@ -169,6 +168,11 @@ TopiaEntity entity = castToTopiaEntityOrNull(event.getEntity()); TopiaContextImplementor entityContext = findContext(entity); + // Using JPA mapping, must generate id here + Class<?> entityInterface = TopiaPersistenceUtil.getEntityContract(entity.getClass()); + String topiaId = TopiaId.create(entityInterface); + entity.setTopiaId(topiaId); + if (entityContext != null && entity != null) { Object[] entityState = event.getState(); entityContext.getFiresSupport().fireOnPreCreate(