jpa - 如何从实体管理器设置 "unchained transaction mode"

标签 jpa eclipselink

我正在尝试使用来自实体管理器的 native 查询调用来调用存储过程,如下所示

String command = "..."//my stored procedure call command
Query q =  getEntityManager().createNativeQuery(command);

但是当我运行它时,我收到以下消息:

Exception, procedure ... can be run only in unchained transaction mode...

我知道如果我有一个连接对象,我可以设置 con.setAutoComit(true) 来完成这项工作。 但我的问题是:因为我有一个实体管理器对象,我可以从实体管理器对象以某种方式设置它吗?我想要容器来管理所有数据库资源...

我正在使用 EclipseLink。

谢谢。

请注意:我无法控制数据库端,因此我无法将事务模式更改为“任何”。

最佳答案

我找到了解决方案:

getEntityManager().createNativeQuery("set chained off").executeUpdate();

关于jpa - 如何从实体管理器设置 "unchained transaction mode",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5859158/

相关文章:

java - 使用带有乐观锁定的 JPA 更新 n 条记录

Java 枚举覆盖 toString()

java - 使用 JPA 中的联接表从多对多关系获取结果集

json - 读取具有一对多关系的 JPA 模型时生成不完整的 JSON 错误

java - Netbeans 平台和 Jpa EclipseLink

jpa - 使用 eclipselink 启动 wildfly 9

jpa - 在 JPA 中强制方法成为非事务性方法 (Eclipselink)

java - Spring - Hibernate JPA 配置中的问题设置方言

通过级联持久化对象的 JPA 事务/回滚行为

java - EclipseLink 对分散在多个 jar 中的实体进行静态编织失败