Por qué el método bean de sesión arroja EjbTransactionRolledbackException cuando se lanzó RuntimeException
Estoy tratando de persistir la entidad con validación de restricción, cuando la invocación persiste: hay una restricción que se lanza y la persona que llama recibeEjbTransactionRolledbackException
... así que trato de llamar a la validación explícita y arrojarConstraintViolationException
/RuntimeException
y aún así la persona que llama recibeEjbTransactionRolledbackException
... cuando tiroMyException
se extiendeException
- la persona que llama recibeMyException
Incluso cuando llamo explícitosc.setRollBackOnly
todavía sucedió :(
Este no debería ser el comportamiento.
¿que esta pasando?
Configuración:
Netbeans 6.9.1 Glassfish 3.0.1 JPA 2.0 (EclipseLink) EJB 3.1
¡¡¡Gracias!!!
@Stateless
public class My {
@PersistenceContext
EntityManager em;
@Resource
Validator validator;
public Order checkout(Order order) {
Set<ConstraintViolation<Order>> set = validator.validate(order, Default.class);
if (!set.isEmpty()) {
sc.setRollbackOnly();
//throw new ConstraintViolationException(new HashSet<ConstraintViolation<?>>(set));
throw new RuntimeException();
}
this.em.persist(order);
}