java - 获取 JPA native 插入查询生成的标识符

标签 java jpa orm persistence nativequery

出于性能原因,我需要使用一些 native 查询将新对象插入数据库。我有一个非常复杂的 JPA 持久层,它管理我通常的实体读写,我想使用这个持久层来运行 native 查询。

我知道我需要 EntityManager#createNativeQuery(String) 和 Query#executeUpdate 方法来实现我的目标。

我当前的问题是我还想获取新插入行的生成标识符。我知道使用 JDBC 或 SpringPersistence 是可能的,但是有什么方法可以从 JPA native 查询中获取这些标识符吗?

最佳答案

大多数情况下,这是特定于数据库的,如果您可以使用 JDBC 来完成此操作,您也可以使用 JPA native 查询来完成此操作。您基本上需要执行(特定于数据库的)额外查询来获取插入的 ID。

关于java - 获取 JPA native 插入查询生成的标识符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13581990/

相关文章:

java - JPA 或 Hibernate - 在不同类型的列上连接表

sql - 有没有办法在 Rails 中将 where 和 where.not 组合成一个条件?

java - 使用 hibernate session 获取对象而不使用事务

java - ORMLite 混合 orderBy() 和 orderByRaw()

java - 如何将 native 查询重写为 JPA 标准

r - R中是否有用于对象关系映射的软件包?

java - Java 中的异常层次结构

Java:在大型项目实践中将文件处理代码放在哪里

使用 JPA 和 MySQL 的 Java 应用程序错误代码 1054

java - Hibernate 试图持久化同一个对象两次