J'ai une méthode qui effectue plusieurs opérations dans une transaction. L'opération envoie un message à MDB. J'utilise hibernate avec un cadre de printemps.Les données mises à jour ne sont pas récupérées avec la session Hibernate et MDB dans une transaction
Pseudo code est:
@TransactionAttribute(TransactionAttributeType.REQUIRED)
public someMethod{
dao.update(someObject);
sendToMDB(someObjectID); << sending ID of above updated object
dao.doSomeThingMore();
}
Dans le MDB je suis juste aller chercher le updatedObject ci-dessus:
onMessage(){
....
dao.find(someObjectID);
}
Le problème que je suis confronté est lorsque je récupère someObject dans MDB récupère les anciennes valeurs de someObject et non celles mises à jour! !!
J'ai essayé d'enlever toutes les méthodes dans MDB et de mettre tous ensemble dans la méthode someMethod() et cela fonctionne très bien. J'ai même essayé d'utiliser flush() & clear() après dao.update() mais toujours le même problème.
Aidez-nous s'il vous plaît.
Merci d'avance.
Quelqu'un peut-il suggérer. Ce problème me rend fou. – alex