[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