как получить идентификатор после сохранения объекта в базе данных - PullRequest
1 голос
/ 28 июня 2011

Я использую Java, Spring, JPA для нашего приложения.Я хочу получить идентификатор вставки строки.По сути, наш идентификатор генерируется во время сохранения объекта в базе данных.

RoleRequest role = new RoleRequest();

roleRequest.setUser(user);
roleRequest.setRole(role);
roleRequest.setRequestDate(new Date());
roleRequest.setStatusCode(Enum.PENDING);

Dao.persist(roleRequest);

Поэтому после сохранения этого объекта мне нужен новый сгенерированный идентификатор для этого объекта, чтобы выполнить с ним некоторую операцию.

Ответы [ 2 ]

3 голосов
/ 28 июня 2011
Dao.persist(roleRequest);

После этой строки должен быть установлен идентификатор, так что вы можете просто сделать

Long id = roleRequest.getId();

(при условии id в качестве столбца идентификатора и Long в качестве типа идентификатора)

2 голосов
/ 28 июня 2011

Как насчет:

oleRequest role = new RoleRequest();

roleRequest.setUser(user);
roleRequest.setRole(role);
roleRequest.setRequestDate(new Date());
roleRequest.setStatusCode(RoleRequestStatusEnum.PENDING);

Dao.persist(roleRequest);
int myId = roleRequest.getId();

Возможно, вам понадобится сделать EntityManager.flush() после EntityManager.persist() (YMMV).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...