Как получить идентификатор последней сохраненной сущности, используя JPA
Я ищу умный и легко читаемый способ получить идентификатор персистентной сущности, используяJPA
, Идентификатор являетсяInteger
.
Можно подумать о следующих решениях:
Без использованияGeneratedValue
стратегия. Это требует поиска свободного идентификатора перед сохранением, а затем помещения его в сущность для сохранения: громоздко, но работает.СGeneratedValue
стратегия. Постоянный провайдер позаботится о генерации идентификатора. Это выглядит умнее, но как получить идентификатор?Смотрите решение 2 ниже
MyEntity en = new MyEntity();
en.setName("My name");
em.persist(en);
System.out.println(en.getId());
Это печатает нулевой идентификатор!
Какие-либо предложения? Я использую MySql, EclipseLink, но мне нужно портативное решение.