gpt4 book ai didi

java - 当运行时异常发生时,JPA如何处理提交

转载 作者:行者123 更新时间:2023-12-01 14:21:30 24 4
gpt4 key购买 nike

我在持久保存到 Oracle DBMS 的 Web 应用程序中使用 JPA 的 Hibernate 实现。如果我有一个服务方法插入一些使用 Spring 声明性事务注释 (@Transaction) 的数据,那么更改何时提交到 DBMS?如果我有数千个线程使用此服务方法插入数据并且服务器崩溃(类似于 OutOfMemory 异常),已插入但未提交的事务会发生什么情况?它与 JDBC 有何不同?

最佳答案

通常提交发生在 EntityManager 关闭之前(如果调用者未装饰,则在用 @Transaction 装饰的方法末尾)。如果使用 hibernate/JPA,您可以通过将以下记录器设置为 DEBUG 来调试事务开始/提交/回滚:

org.hibernate.transaction=DEBUG 
org.hibernate.engine.transaction=DEBUG # Hibernate 4.2.2 or higher

通常,当发生运行时异常时,您的事务将回滚,但这取决于您的配置/设置。

关于java - 当运行时异常发生时,JPA如何处理提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17514670/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com