java - EJB 中的 getGenerateKeys

标签 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

最佳答案

试试这个:

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/

相关文章:

singleton - 集群中的 EJB 3.1 单例

java-ee-6 - 如何取消或删除 Persistent EJBTimers

java - EJB 3.1 应用程序部署为 WAR-only : What about ejb-jar. xml?

java - GWT anchor 放置?

java - SVNKit 使用 auth 文件夹

java - Java 中不使用数组的排列

java - 将 JScrollPane 的可见区域移动到特定位置

java - 使类抽象的主要优点是什么

postgresql - 如何使用 JPA 创建 PostgreSql 序列?

java - 如何使EJB3远程接口(interface)可供客户端使用?