Почему метод сессионного компонента генерирует исключение EjbTransactionRolledbackException при возникновении исключения RuntimeException
Я пытаюсь сохранить сущность с проверкой ограничения, когда вызывать сохраняются - есть ограничение, которое выбрасывается, и вызывающая сторона получаетEjbTransactionRolledbackException
... поэтому я пытаюсь вызвать проверку явным и броситьConstraintViolationException
/RuntimeException
и еще звонящий получитEjbTransactionRolledbackException
... когда я бросаюMyException
продолжаетсяException
- звонящийMyException
Даже когда я называю явнымsc.setRollBackOnly
это все еще случилось :(
Это не должно быть поведение.
в чем дело?
Конфигурация:
Netbeans 6.9.1 Glassfish 3.0.1 JPA 2.0 (EclipseLink) EJB 3.1
Спасибо!!!
@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);
}