如何在对象存储到数据库后检索ID

时间:2011-06-28 09:38:06

标签: java jpa-2.0

我正在使用Java,spring,jpa作为我们的应用程序。我想检索插入行的Id。基本上我们的ID是在将对象存储到数据库时生成的。

RoleRequest role = new RoleRequest();

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

Dao.persist(roleRequest);

因此,在存储此对象后,我需要为此对象生成新的id,以便对其执行某些操作。

2 个答案:

答案 0 :(得分:3)

Dao.persist(roleRequest);

在此行之后,应设置id,因此您可以执行

Long id = roleRequest.getId();

(假设id为id列,Long为id类型)

答案 1 :(得分:2)

怎么样:

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()(YMMV)后执行EntityManager.persist()