Я пытаюсь сохранить объект с проверкой ограничений,
когда вызов сохраняется - возникает ограничение, и вызывающий получает EjbTransactionRolledbackException
...
поэтому я пытаюсь вызвать проверку явным образом и выбросить ConstraintViolationException
/ RuntimeException
, а вызывающий абонент получит EjbTransactionRolledbackException
...
когда я выбрасываю MyException
extends 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);
}