【问题标题】:How to create a new Hibernate transaction without a new connection?如何在没有新连接的情况下创建新的 Hibernate 事务?
【发布时间】:2012-06-11 11:31:53
【问题描述】:

如何修改此代码,使其不使用新的数据库连接,而是重用当前的连接(来自封闭事务)?

TransactionDefinition transactionDefinition = new DefaultTransactionDefinition(TransactionDefinition.PROPAGATION_REQUIRES_NEW);
new TransactionTemplate(platformTransactionManager, transactionDefinition).execute(new TransactionCallbackWithoutResult() {
    @Override
    protected void doInTransactionWithoutResult(TransactionStatus status) {
        // do stuff
    }
});

编辑: 与How do I do nested transactions in hibernate using only one connection?相关

【问题讨论】:

    标签: java hibernate jdbc transactions


    【解决方案1】:

    我会说你可能不能。除非您以某种方式成功使用休眠和底层数据库,以便它们支持嵌套事务。许多数据库没有,我不确定hibernate是否有。 (因为它需要进行新的交易)

    【讨论】:

    • 谢谢马库斯。 新交易很好,这就是我想要的。我只是不想要新的连接
    • 重点是由于hibernate不支持嵌套事务,没有新连接就不能有新事务。因此,要么将 REQUIRES_NEW 更改为 REQUIRES (?),要么建立新连接和新事务。
    猜你喜欢
    • 1970-01-01
    • 2018-09-12
    • 1970-01-01
    • 2022-07-27
    • 2019-11-28
    • 2013-05-26
    • 2013-09-21
    • 2020-12-20
    • 1970-01-01
    相关资源
    最近更新 更多