我想获取持久化对象的ID。我正在使用 EJB 3.1。
我使用准备好的语句来执行此操作,效果非常好。
ResultSet generatedKeys = statement.getGeneratedKeys();
if (generatedKeys.next()) {
myId = generatedKeys.getLong(1);
}
我一直在搜索,但没有发现任何内容说明如何在 EJB 中实现此功能。这是我用来将对象持久保存到数据库的方法:
public void create(T entity) {
getEntityManager().persist(entity);
//Something to return entity's id???
}
我使用的持久性提供程序是:
org.eclipse.persistence.jpa.PersistenceProvider
最佳答案
试试这个:
public [id_type] create(T entity) {
getEntityManager().persist(entity);
getEntityManager().flush();
getEntityManager().refresh(entity);
return entity.getId();
}
关于java - EJB 中的 getGenerateKeys,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10929801/