Ambiente:
- GlassFish server 4.1.1
- NetBeans 8.2
- JSF
- Primefaces
Estou tentando tentando usar o seguinte método:
public Usuario merge(Usuario usuario) {
return em.merge(usuario);
}
Entretanto, há a acusação de que não existe uma transação ativa (que eu acredito que deveria ser gerenciada pelo servidor) então, tentei isso:
public Usuario merge(Usuario usuario) {
em.getTransaction().begin();
Usuario u = em.merge(usuario);
em.getTransaction().commit();
return u;
}
Então, a acusação passou a ser de que a transação deveria feita usando JTA, e mais uma vez tentei abordar assim:
@PersistenceContext
private EntityManager em;
@Resource
private UserTransaction transaction;
public Usuario merge(Usuario usuario) {
try {
transaction.begin();
Usuario t = em.merge(usuario);
transaction.commit();
return t;
} catch (Exception ex) {
System.out.println(ex);
return null;
}
}
Mas como devem imaginar também não deu certo e agora estou recebendo uma
javax.validation.ConstraintViolationException:
Qual é a abordagem que eu deveria usar para que o servidor controle a transação utilizando CDI?