我想获得持久对象的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
答案 0 :(得分:2)
试试这个:
public [id_type] create(T entity) {
getEntityManager().persist(entity);
getEntityManager().flush();
getEntityManager().refresh(entity);
return entity.getId();
}