【发布时间】:2010-12-07 04:14:20
【问题描述】:
我有一个在事务中执行多个操作的方法。操作之一是向 MDB 发送消息。我正在使用带有 spring 框架的 hibernate。
伪代码是:
@TransactionAttribute(TransactionAttributeType.REQUIRED)
public someMethod{
dao.update(someObject);
sendToMDB(someObjectID); << sending ID of above updated object
dao.doSomeThingMore();
}
在 MDB 中,我只是获取上面的 updatedObject :
onMessage(){
....
dao.find(someObjectID);
}
我面临的问题是,当我在 MDB 中检索 someObject 时,它检索的是 someObject 的旧值而不是更新后的值!!!
我试图去掉 MDB 中的所有方法,并将所有方法放在方法 someMethod() 中,它工作得很好。 我什至尝试在 dao.update() 之后使用 flush() 和 clear() 但仍然是同样的问题。
请帮忙。
提前致谢。
【问题讨论】:
-
有人可以建议。这个问题让我很抓狂。