Como obter o ID da última entidade persistente usando JPA

Estou procurando uma maneira inteligente e de fácil leitura de obter o ID de uma entidade persistente usandoJPA. O ID é umInteger.

@One poderia pensar nas seguintes soluções:

Sem utilizarGeneratedValue estratégia. Isso requer procurar um ID gratuito antes de persistir e colocá-lo na entidade a ser persistida: complicado, mas funcionCom umGeneratedValue estratégia. O provedor de persistência cuidará da geração do ID. Parece mais inteligente, mas como obter o ID?

Veja abaixo a solução 2

MyEntity en = new MyEntity();
en.setName("My name");
em.persist(en);
System.out.println(en.getId());

Isso imprime um ID nulo!

Alguma sugestão? Estou usando o MySql, EclipseLink, mas preciso de uma solução portátil.

questionAnswers(2)

yourAnswerToTheQuestion