2012-06-07 87 views
0

如何修改此代码,使其不使用新的数据库连接,但重新使用当前(从封闭事务处理)?如何在没有新连接的情况下创建新的Hibernate事务?

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?

回答

0

我会说你可能倾斜。除非你以某种方式成功地使用hibernate和底层数据库,以便它们支持嵌套事务。许多数据库不,我不知道如果休眠。 (因为它需要一个新的交易)

+0

谢谢马库斯。 **新交易很好,这就是我想要的**。我只是**不想要一个新的连接**。 –

+1

重点是,因为hibernate不支持嵌套事务,所以你不能有一个新的事务与一个新的连接。因此,将REQUIRES_NEW更改为REQUIRES(?)或创建新的连接和新的事务。 –

相关问题