У меня есть метод, который выполняет несколько операций в транзакции. Операция отправляет сообщение в MDB. Я использую Hibernate с рамкой весны.
Псевдокод:
@TransactionAttribute(TransactionAttributeType.REQUIRED)
public someMethod{
dao.update(someObject);
sendToMDB(someObjectID); << sending ID of above updated object
dao.doSomeThingMore();
}
В MDB я просто загружаю выше обновленный объект:
onMessage(){
....
dao.find(someObjectID);
}
Проблема, с которой я сталкиваюсь, заключается в том, что когда я получаю someObject в MDB, он возвращает старые значения someObject, а не обновленные !!!
Я попытался убрать все методы в MDB и собрать все вместе в методе someMethod (), и все работает нормально.
Я даже пытался использовать flush () и clear () после dao.update (), но все еще проблема.
Пожалуйста, помогите.
Заранее спасибо.