Por que o método do bean de sessão lança EjbTransactionRolledbackException quando RuntimeException foi acionado
Estou tentando persistir a entidade com validação de restrição, quando invocar persistir - há restrições que são lançadas e o chamador obtémEjbTransactionRolledbackException
... então eu tento chamar a validação explícita e jogarConstraintViolationException
/RuntimeException
e ainda assim o chamador recebeEjbTransactionRolledbackException
... quando eu jogoMyException
estendeException
- o chamador recebeMyException
Mesmo quando eu chamo explícitosc.setRollBackOnly
ainda aconteceu :(
Este não deve ser o comportamento.
o que está acontecendo?
Configuração:
Netbeans 6.9.1 Glassfish 3.0.1 JPA 2.0 (EclipseLink) EJB 3.1
Obrigado!!!
@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);
}