【发布时间】:2010-01-21 19:46:07
【问题描述】:
我正在使用 Spring 处理一些数据访问逻辑,我的问题与事务有关。事务文档http://static.springsource.org/spring/docs/2.5.x/reference/transaction.html 表明您可以实现声明式或编程式事务。我选择使用程序化方法,以便更好地控制所交易的内容。
基本模式如下所示:
Product product = new Product();
// load properties
// how do I pass my product object instance to my anonymous method?
transactionTemplate.execute(
new TransactionCallbackWithoutResult()
{
protected void doInTransactionWithoutResult (TransactionStatus status)
{
// transaction update logic here
return;
}});
也许我做错了,但是,我的问题是如何将参数传递给内部匿名方法?我想这样做的原因是我可以建立自己的开始事务之前的对象图(因为事务应该尽可能缩短时间,对吧?)我只希望在事务中运行一小部分逻辑(更新逻辑)。
[编辑]
到目前为止,我唯一的选择似乎是使用常量变量,或者只是将所有逻辑放在匿名委托中。这似乎是一个很常见的问题……您是如何在自己的代码中处理此类情况的?
【问题讨论】:
标签: java hibernate spring transactions