Chave primária JPA/TopLink

Pessoal,

Estou com o seguinte problema, criei uma rotina de logs no meu sistema, quando um usuário altera algum registro em uma tabela do sistema eu gravo a alteração que ele fez em uma tabela de logs, nessa tabela de logs existe um campo chamado “registro” que é onde eu armazeno o código do registro que foi alterado, porém quando o usuário insere um novo registro em alguma tabela eu também gostaria de guardar na minha tabela de logs o momento em que esse registro foi criado e qual o usuário que criou, o problema é que depois de eu executar commit do entitymanager eu ainda não tenho gerada a chave primária deste registro, caso eu tente acessar pelo get da chave primária é retornado o valor NULL, alguém sabe como pegar o valor correto do banco de dados logo após o commit?

Obrigado.

Tem a anotação @PostPersist que vc coloca sobre um método do seu POJO. Esta anotação avisa que ao persistir este Pojo este método deverá ser executado.

fabiophx, é justamente no @PostPersist que eu estou tentando recuperar o código do registro inserido, mas ao tentar executar o getCodigo() retorna null.

Tens alguma outra ideia?

Obrigado.

Ainda não precisei usar o @PostPersist, mas olhando a API imaginei que iria te ajudar.
Nenhum dos outros @Post… resolve a sua situação?

Realmente não, sempre é retornado a entidade mas não reflete o valor do código (atualizado) no banco de dados…

eu uso o @PostPersist e da certo e meu Id é gerado com @GeneradedValues() e consigo pegar o Id que esta gerado no evento