【问题标题】:JPA Entities and TransactionContext of EJB methodEJB 方法的 JPA 实体和 TransactionContext
【发布时间】:2012-02-09 16:11:54
【问题描述】:

我有一个 EJB,它的方法(除其他外)加载一个实体并修改它。如果该方法完成,那么该实体的修改会自动提交到数据库而不调用 EntityManager.saveOrUpdate() 方法?并且当方法失败时,该 EJB 方法的事务将与该实体的修改一起回滚?

【问题讨论】:

    标签: jakarta-ee


    【解决方案1】:

    使用 EJB,您的方法隐含地与事务绑定。 如果您使用实体管理器加载实体,则实体将附加持久上下文,因此如果您对对象进行修改,则在事务结束时,如果一切正常,则事务提交并将修改刷新到数据库,否则如果事务回滚时发生一些错误,并且修改被丢弃。

    【讨论】:

    • 如果出现问题并抛出异常,回滚取决于它是否是运行时异常,或者是否使用@ApplicationException 注释声明。见blog.dblevins.com/2010/07/…
    猜你喜欢
    • 2012-09-13
    • 2016-02-11
    • 2018-11-09
    • 1970-01-01
    • 1970-01-01
    • 2011-02-15
    • 2011-08-27
    • 1970-01-01
    • 2011-08-10
    相关资源
    最近更新 更多