[jboss-user] [EJB 3.0] - Entity Callback -- @PrePersist vs. @PreUpdate

john_hedden do-not-reply at jboss.com
Tue Jun 10 21:24:09 EDT 2008


I have the following in a SFSB:

  | public void saveOrder() {
  | 		
  | 		try {
  | 			if (order.getId() != null) {
  | 				entityManager.merge(order);
  | 				FacesUtil.addInfoMessage("Order Number: " + order.getOrderNumber()  +" was successfully updated.");
  | 			} else {
  | 				entityManager.persist(order);
  | 				FacesUtil.addInfoMessage("Your Order Number is: " + order.getOrderNumber());
  | 			}
  | 			//entityManager.flush();
  | 			//events.raiseTransactionSuccessEvent("orderCreated");
  | 			//editOrder();
  | 		} catch (IllegalStateException se) {
  | 			se.fillInStackTrace();
  | 			FacesUtil.addInfoMessage("Test ....");
  | 		} catch (Exception e) {
  | 			FacesUtil.addInfoMessage("Test2 ....");
  | 		}
  | 	}

and this listener on the order object:
public class OrderValidator {
  | 	
  | 	@PrePersist @PreUpdate
  | 	public void validateSubmit(Order order) {
  | 		if (order.getStatus() == Status.SUBMITTED) {
  | 			if (order.getUploadFileList().size() < 1) {
  | 				throw new IllegalStateException("Submitted orders must have at least one attachment.");
  | 			}
  | 		}
  | 	}
  | }

When I try and get it to fail via persist, everything works fine and I get my FacesMessage.  When I try and get it to fail via merge I get: 
[arjLoggerI18N] [com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator_2] TwoPhaseCoordinator.beforeCompletion - failed for com.arjuna.ats.internal.jta.resources.arjunacore.SynchronizationImple at 6c43e2
  | javax.persistence.PersistenceException: java.lang.IllegalStateException: Submitted orders must have at least one attachment.
  | 	at org.hibernate.ejb.AbstractEntityManagerImpl$1.beforeCompletion(AbstractEntityManagerImpl.java:527)
  | 

and it never reaches either catch block in my SFSB.  What gives?

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4157198#4157198

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4157198



More information about the jboss-user mailing list