2010-08-11 5 views
0

Pour une application, j'utilise Struts2, hibernate et spring for injection. Chaque fois que j'enregistre un objet dans DB, je dois faire dans la classe Serivces (session injectée ici). Dans n'importe quelle classe d'action, si j'obtiens la session courante et l'enregistre, elle n'enregistre pas l'objet dans la base de données. Bien que, je vois insérer dans ..... dans les journaux. pourquoi donc?hibernate save object

Répondre

0

Je suppose que vous ne faites pas de gestion des transactions. Vous ne verrez aucun enregistrement dans la base de données tant que la transaction n'aura pas été validée.

Je suppose que Spring gère automatiquement la transaction dans votre classe de service. Cependant, si vous utilisez directement la session, vous devez également commencer/valider la transaction dans votre code.

Voir http://docs.jboss.org/hibernate/stable/core/reference/en/html/transactions.html pour plus de détails

+0

Vous savez ce que maintenant que je pense ... la classe des services est annotées @Transactional, que cela veut dire que pour tout code à l'intérieur transaction seront traitées, mais si je le fais en dehors de cette classe ... je dois commettre une transaction manuellement? – Nish

+0

je vois ... merci! – Nish

Questions connexes