[hibernate-commits] Hibernate SVN: r11207 - in branches/Branch_3_2/HibernateExt/entitymanager/src: test/org/hibernate/ejb/test/callbacks and 1 other directory.
hibernate-commits at lists.jboss.org
hibernate-commits at lists.jboss.org
Wed Feb 14 14:43:46 EST 2007
Author: epbernard
Date: 2007-02-14 14:43:45 -0500 (Wed, 14 Feb 2007)
New Revision: 11207
Added:
branches/Branch_3_2/HibernateExt/entitymanager/src/test/org/hibernate/ejb/test/callbacks/Plant.java
Modified:
branches/Branch_3_2/HibernateExt/entitymanager/src/java/org/hibernate/ejb/event/EJB3DeleteEventListener.java
branches/Branch_3_2/HibernateExt/entitymanager/src/java/org/hibernate/ejb/event/EJB3FlushEntityEventListener.java
branches/Branch_3_2/HibernateExt/entitymanager/src/java/org/hibernate/ejb/event/EJB3MergeEventListener.java
branches/Branch_3_2/HibernateExt/entitymanager/src/java/org/hibernate/ejb/event/EJB3PersistEventListener.java
branches/Branch_3_2/HibernateExt/entitymanager/src/java/org/hibernate/ejb/event/EJB3PostDeleteEventListener.java
branches/Branch_3_2/HibernateExt/entitymanager/src/java/org/hibernate/ejb/event/EJB3PostInsertEventListener.java
branches/Branch_3_2/HibernateExt/entitymanager/src/java/org/hibernate/ejb/event/EJB3PostLoadEventListener.java
branches/Branch_3_2/HibernateExt/entitymanager/src/java/org/hibernate/ejb/event/EJB3PostUpdateEventListener.java
branches/Branch_3_2/HibernateExt/entitymanager/src/java/org/hibernate/ejb/event/EJB3SaveEventListener.java
branches/Branch_3_2/HibernateExt/entitymanager/src/java/org/hibernate/ejb/event/EJB3SaveOrUpdateEventListener.java
branches/Branch_3_2/HibernateExt/entitymanager/src/test/org/hibernate/ejb/test/callbacks/CallbacksTest.java
Log:
EJB-46 support id assignment in @PrePersist
Modified: branches/Branch_3_2/HibernateExt/entitymanager/src/java/org/hibernate/ejb/event/EJB3DeleteEventListener.java
===================================================================
--- branches/Branch_3_2/HibernateExt/entitymanager/src/java/org/hibernate/ejb/event/EJB3DeleteEventListener.java 2007-02-14 05:25:44 UTC (rev 11206)
+++ branches/Branch_3_2/HibernateExt/entitymanager/src/java/org/hibernate/ejb/event/EJB3DeleteEventListener.java 2007-02-14 19:43:45 UTC (rev 11207)
@@ -24,8 +24,6 @@
super();
}
- ;
-
public EJB3DeleteEventListener(EntityCallbackHandler callbackHandler) {
this();
this.callbackHandler = callbackHandler;
Modified: branches/Branch_3_2/HibernateExt/entitymanager/src/java/org/hibernate/ejb/event/EJB3FlushEntityEventListener.java
===================================================================
--- branches/Branch_3_2/HibernateExt/entitymanager/src/java/org/hibernate/ejb/event/EJB3FlushEntityEventListener.java 2007-02-14 05:25:44 UTC (rev 11206)
+++ branches/Branch_3_2/HibernateExt/entitymanager/src/java/org/hibernate/ejb/event/EJB3FlushEntityEventListener.java 2007-02-14 19:43:45 UTC (rev 11207)
@@ -27,8 +27,6 @@
super();
}
- ;
-
public EJB3FlushEntityEventListener(EntityCallbackHandler callbackHandler) {
super();
this.callbackHandler = callbackHandler;
Modified: branches/Branch_3_2/HibernateExt/entitymanager/src/java/org/hibernate/ejb/event/EJB3MergeEventListener.java
===================================================================
--- branches/Branch_3_2/HibernateExt/entitymanager/src/java/org/hibernate/ejb/event/EJB3MergeEventListener.java 2007-02-14 05:25:44 UTC (rev 11206)
+++ branches/Branch_3_2/HibernateExt/entitymanager/src/java/org/hibernate/ejb/event/EJB3MergeEventListener.java 2007-02-14 19:43:45 UTC (rev 11207)
@@ -1,6 +1,8 @@
//$Id$
package org.hibernate.ejb.event;
+import java.io.Serializable;
+
import org.hibernate.event.EventSource;
import org.hibernate.event.def.DefaultMergeEventListener;
import org.hibernate.persister.entity.EntityPersister;
@@ -21,17 +23,24 @@
super();
}
- ;
-
public EJB3MergeEventListener(EntityCallbackHandler callbackHandler) {
super();
this.callbackHandler = callbackHandler;
}
@Override
- protected boolean invokeSaveLifecycle(Object entity, EntityPersister persister, EventSource source) {
- callbackHandler.preCreate( entity ); //always call the precreate event even if on safe vetoe it
- return super.invokeSaveLifecycle( entity, persister, source );
+ protected Serializable saveWithRequestedId(Object entity, Serializable requestedId, String entityName,
+ Object anything, EventSource source) {
+ callbackHandler.preCreate( entity );
+ return super.saveWithRequestedId( entity, requestedId, entityName, anything,
+ source );
+ }
+ @Override
+ protected Serializable saveWithGeneratedId(Object entity, String entityName, Object anything, EventSource source,
+ boolean requiresImmediateIdAccess) {
+ callbackHandler.preCreate( entity );
+ return super.saveWithGeneratedId( entity, entityName, anything, source,
+ requiresImmediateIdAccess );
}
}
Modified: branches/Branch_3_2/HibernateExt/entitymanager/src/java/org/hibernate/ejb/event/EJB3PersistEventListener.java
===================================================================
--- branches/Branch_3_2/HibernateExt/entitymanager/src/java/org/hibernate/ejb/event/EJB3PersistEventListener.java 2007-02-14 05:25:44 UTC (rev 11206)
+++ branches/Branch_3_2/HibernateExt/entitymanager/src/java/org/hibernate/ejb/event/EJB3PersistEventListener.java 2007-02-14 19:43:45 UTC (rev 11207)
@@ -1,6 +1,8 @@
//$Id$
package org.hibernate.ejb.event;
+import java.io.Serializable;
+
import org.hibernate.event.EventSource;
import org.hibernate.event.def.DefaultPersistEventListener;
import org.hibernate.persister.entity.EntityPersister;
@@ -27,8 +29,18 @@
}
@Override
- protected boolean invokeSaveLifecycle(Object entity, EntityPersister persister, EventSource source) {
- callbackHandler.preCreate( entity ); //always call the precreate event even if on safe vetoe it
- return super.invokeSaveLifecycle( entity, persister, source );
+ protected Serializable saveWithRequestedId(Object entity, Serializable requestedId, String entityName,
+ Object anything, EventSource source) {
+ callbackHandler.preCreate( entity );
+ return super.saveWithRequestedId( entity, requestedId, entityName, anything,
+ source );
}
+
+ @Override
+ protected Serializable saveWithGeneratedId(Object entity, String entityName, Object anything, EventSource source,
+ boolean requiresImmediateIdAccess) {
+ callbackHandler.preCreate( entity );
+ return super.saveWithGeneratedId( entity, entityName, anything, source,
+ requiresImmediateIdAccess );
+ }
}
Modified: branches/Branch_3_2/HibernateExt/entitymanager/src/java/org/hibernate/ejb/event/EJB3PostDeleteEventListener.java
===================================================================
--- branches/Branch_3_2/HibernateExt/entitymanager/src/java/org/hibernate/ejb/event/EJB3PostDeleteEventListener.java 2007-02-14 05:25:44 UTC (rev 11206)
+++ branches/Branch_3_2/HibernateExt/entitymanager/src/java/org/hibernate/ejb/event/EJB3PostDeleteEventListener.java 2007-02-14 19:43:45 UTC (rev 11207)
@@ -24,8 +24,6 @@
super();
}
- ;
-
public EJB3PostDeleteEventListener(EntityCallbackHandler callbackHandler) {
this.callbackHandler = callbackHandler;
}
Modified: branches/Branch_3_2/HibernateExt/entitymanager/src/java/org/hibernate/ejb/event/EJB3PostInsertEventListener.java
===================================================================
--- branches/Branch_3_2/HibernateExt/entitymanager/src/java/org/hibernate/ejb/event/EJB3PostInsertEventListener.java 2007-02-14 05:25:44 UTC (rev 11206)
+++ branches/Branch_3_2/HibernateExt/entitymanager/src/java/org/hibernate/ejb/event/EJB3PostInsertEventListener.java 2007-02-14 19:43:45 UTC (rev 11207)
@@ -24,8 +24,6 @@
super();
}
- ;
-
public EJB3PostInsertEventListener(EntityCallbackHandler callbackHandler) {
this.callbackHandler = callbackHandler;
}
Modified: branches/Branch_3_2/HibernateExt/entitymanager/src/java/org/hibernate/ejb/event/EJB3PostLoadEventListener.java
===================================================================
--- branches/Branch_3_2/HibernateExt/entitymanager/src/java/org/hibernate/ejb/event/EJB3PostLoadEventListener.java 2007-02-14 05:25:44 UTC (rev 11206)
+++ branches/Branch_3_2/HibernateExt/entitymanager/src/java/org/hibernate/ejb/event/EJB3PostLoadEventListener.java 2007-02-14 19:43:45 UTC (rev 11207)
@@ -24,8 +24,6 @@
super();
}
- ;
-
public EJB3PostLoadEventListener(EntityCallbackHandler callbackHandler) {
this.callbackHandler = callbackHandler;
}
Modified: branches/Branch_3_2/HibernateExt/entitymanager/src/java/org/hibernate/ejb/event/EJB3PostUpdateEventListener.java
===================================================================
--- branches/Branch_3_2/HibernateExt/entitymanager/src/java/org/hibernate/ejb/event/EJB3PostUpdateEventListener.java 2007-02-14 05:25:44 UTC (rev 11206)
+++ branches/Branch_3_2/HibernateExt/entitymanager/src/java/org/hibernate/ejb/event/EJB3PostUpdateEventListener.java 2007-02-14 19:43:45 UTC (rev 11207)
@@ -26,8 +26,6 @@
super();
}
- ;
-
public EJB3PostUpdateEventListener(EntityCallbackHandler callbackHandler) {
this.callbackHandler = callbackHandler;
}
Modified: branches/Branch_3_2/HibernateExt/entitymanager/src/java/org/hibernate/ejb/event/EJB3SaveEventListener.java
===================================================================
--- branches/Branch_3_2/HibernateExt/entitymanager/src/java/org/hibernate/ejb/event/EJB3SaveEventListener.java 2007-02-14 05:25:44 UTC (rev 11206)
+++ branches/Branch_3_2/HibernateExt/entitymanager/src/java/org/hibernate/ejb/event/EJB3SaveEventListener.java 2007-02-14 19:43:45 UTC (rev 11207)
@@ -1,6 +1,8 @@
//$Id$
package org.hibernate.ejb.event;
+import java.io.Serializable;
+
import org.hibernate.event.EventSource;
import org.hibernate.event.def.DefaultSaveEventListener;
import org.hibernate.persister.entity.EntityPersister;
@@ -21,16 +23,24 @@
super();
}
- ;
-
public EJB3SaveEventListener(EntityCallbackHandler callbackHandler) {
super();
this.callbackHandler = callbackHandler;
}
@Override
- protected boolean invokeSaveLifecycle(Object entity, EntityPersister persister, EventSource source) {
- callbackHandler.preCreate( entity ); //always call the precreate event even if on safe vetoe it
- return super.invokeSaveLifecycle( entity, persister, source );
+ protected Serializable saveWithRequestedId(Object entity, Serializable requestedId, String entityName,
+ Object anything, EventSource source) {
+ callbackHandler.preCreate( entity );
+ return super.saveWithRequestedId( entity, requestedId, entityName, anything,
+ source );
}
+
+ @Override
+ protected Serializable saveWithGeneratedId(Object entity, String entityName, Object anything, EventSource source,
+ boolean requiresImmediateIdAccess) {
+ callbackHandler.preCreate( entity );
+ return super.saveWithGeneratedId( entity, entityName, anything, source,
+ requiresImmediateIdAccess );
+ }
}
Modified: branches/Branch_3_2/HibernateExt/entitymanager/src/java/org/hibernate/ejb/event/EJB3SaveOrUpdateEventListener.java
===================================================================
--- branches/Branch_3_2/HibernateExt/entitymanager/src/java/org/hibernate/ejb/event/EJB3SaveOrUpdateEventListener.java 2007-02-14 05:25:44 UTC (rev 11206)
+++ branches/Branch_3_2/HibernateExt/entitymanager/src/java/org/hibernate/ejb/event/EJB3SaveOrUpdateEventListener.java 2007-02-14 19:43:45 UTC (rev 11207)
@@ -1,6 +1,8 @@
//$Id$
package org.hibernate.ejb.event;
+import java.io.Serializable;
+
import org.hibernate.event.EventSource;
import org.hibernate.event.def.DefaultSaveOrUpdateEventListener;
import org.hibernate.persister.entity.EntityPersister;
@@ -21,16 +23,24 @@
super();
}
- ;
-
public EJB3SaveOrUpdateEventListener(EntityCallbackHandler callbackHandler) {
super();
this.callbackHandler = callbackHandler;
}
@Override
- protected boolean invokeSaveLifecycle(Object entity, EntityPersister persister, EventSource source) {
- callbackHandler.preCreate( entity ); //always call the precreate event even if on safe vetoe it
- return super.invokeSaveLifecycle( entity, persister, source );
+ protected Serializable saveWithRequestedId(Object entity, Serializable requestedId, String entityName,
+ Object anything, EventSource source) {
+ callbackHandler.preCreate( entity );
+ return super.saveWithRequestedId( entity, requestedId, entityName, anything,
+ source );
}
+
+ @Override
+ protected Serializable saveWithGeneratedId(Object entity, String entityName, Object anything, EventSource source,
+ boolean requiresImmediateIdAccess) {
+ callbackHandler.preCreate( entity );
+ return super.saveWithGeneratedId( entity, entityName, anything, source,
+ requiresImmediateIdAccess );
+ }
}
Modified: branches/Branch_3_2/HibernateExt/entitymanager/src/test/org/hibernate/ejb/test/callbacks/CallbacksTest.java
===================================================================
--- branches/Branch_3_2/HibernateExt/entitymanager/src/test/org/hibernate/ejb/test/callbacks/CallbacksTest.java 2007-02-14 05:25:44 UTC (rev 11206)
+++ branches/Branch_3_2/HibernateExt/entitymanager/src/test/org/hibernate/ejb/test/callbacks/CallbacksTest.java 2007-02-14 19:43:45 UTC (rev 11207)
@@ -151,13 +151,25 @@
}
+ public void testIdNullSetByPrePersist() throws Exception {
+ Plant plant = new Plant();
+ plant.setName( "Origuna plantula gigantic" );
+ EntityManager em = factory.createEntityManager();
+ em.getTransaction().begin();
+ em.persist( plant );
+ em.flush();
+ em.getTransaction().rollback();
+ em.close();
+ }
+
public Class[] getAnnotatedClasses() {
return new Class[]{
Cat.class,
Translation.class,
Television.class,
RemoteControl.class,
- Rythm.class
+ Rythm.class,
+ Plant.class
};
}
}
Added: branches/Branch_3_2/HibernateExt/entitymanager/src/test/org/hibernate/ejb/test/callbacks/Plant.java
===================================================================
--- branches/Branch_3_2/HibernateExt/entitymanager/src/test/org/hibernate/ejb/test/callbacks/Plant.java (rev 0)
+++ branches/Branch_3_2/HibernateExt/entitymanager/src/test/org/hibernate/ejb/test/callbacks/Plant.java 2007-02-14 19:43:45 UTC (rev 11207)
@@ -0,0 +1,43 @@
+//$Id: $
+package org.hibernate.ejb.test.callbacks;
+
+import javax.persistence.Id;
+import javax.persistence.Entity;
+import javax.persistence.PrePersist;
+
+/**
+ * @author Emmanuel Bernard
+ */
+ at Entity
+public class Plant {
+ @Id
+ private String id;
+ private String name;
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ @PrePersist
+ private void defineId() {
+ //some (stupid) id generation
+ if ( name.length() > 5 ) {
+ setId( name.substring( 0, 5 ) );
+ }
+ else {
+ setId( name );
+ }
+ }
+}
More information about the hibernate-commits
mailing list