EJB中的getGeneratedKeys

时间:2012-06-07 10:14:31

标签: java ejb-3.1

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

1 个答案:

答案 0 :(得分:2)

试试这个:

public [id_type] create(T entity) {
    getEntityManager().persist(entity);
    getEntityManager().flush();
    getEntityManager().refresh(entity);
    return entity.getId();
}