2

我想获取持久对象的 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
4

1 回答 1

2

试试这个:

public [id_type] create(T entity) {
    getEntityManager().persist(entity);
    getEntityManager().flush();
    getEntityManager().refresh(entity);
    return entity.getId();
}
于 2012-06-07T10:31:19.457 回答