Olá,
Tenho uma aplicação Java EE e ao persistir os dados de uma entidade em um método de um EJB, quando ocorre algum erro (por exemplo, campo not-null não informado), a transação dá rollback corretamente, porém, o ID dessa entidade é retornado preenchido ao método que o chamou. Nesse caso, na minha tela aparece a mensagem de erro que trato no meu managed-bean e o campo ID também vem preenchido. O objeto não está voltando ao estado anterior da chamada do persist, mas ainda sim, eu sei que transação não foi comitada pois se saio e tento acessar novamente, o incremento está sequencial.
Meu campo ID está mapeado assim:
@Id
@Column(name = "ID", unique = true, nullable = false)
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
Uso jboss-6.1.0 e a transações é gerenciada por ele.
Eu acabei de fazer um teste no Junit, criando uma EntityManager e controlando as transações manualmente, e o mesmo não ocorre.
Alguém pode me dar uma ajuda?
Obrigada,