2009-12-10 6 views
0

Actuellement, j'utilise intensivement HibernateOperations au printemps pour travailler avec Hibernate. Parfois, j'utilise un TransactionTemplate pour marquer explicitement une transaction. Cependant, parfois, je veux juste sauvegarder/mettre à jour un seul objet. Si j'appelle simplement hibernateOperations.save() sans transaction explicite active alors ça fonctionne (je pense que l'auto-commit arrive ici pour jouer) mais cela signifie que certains événements ne se déclenchent pas, comme si j'avais un écouteur d'événement hibernate accroché dans la transaction de validation qui me manque dans cette circonstance. Ce que je cherche vraiment est une façon de faire facilement quelque chose hibernateOperations.saveAndCommit() car je ne veux pas vraiment avoir tout le bruit de rappel TransactionTemplate + pour des choses simples comme une seule sauvegarde.Comment utiliser Spring HibernateOperations pour des opérations simples avec une transaction implicite?

Je pourrais probablement lancer la mienne, je me demandais simplement s'il existe une solution/bonne pratique pour cela.

Je ne suis pas intéressé à conduire mes transactions via des annotations à ce stade, je préfère l'explicite du code.

Toutes les suggestions sont les bienvenues.

Cheers.

+2

Alors vous aimez le explicitation des transactions programmatiques, mais vous n » t aime le fait qu'il encombre votre code pour une opération simple? Vous ne pouvez pas l'avoir dans les deux sens. C'est ce que les annotations sont * pour *. – skaffman

Répondre

1

Essayez d'utiliser le declarative transaction approach, il est un peu d'une douleur à mettre en place une fois, mais après vous avez peine à se soucier de transactions plus ...

+0

Ouais, j'envisage ça depuis un moment maintenant mais je suis un peu curieux de la complexité "cachée" du truc AOP. Peut-être que c'est juste une de ces choses que vous n'êtes jamais vraiment au courant de ce qui se passe juste que cela fonctionne. Je vais devoir y jeter un autre coup d'oeil. Est-ce que cela a sensiblement un impact sur les performances? Ou avez-vous d'autres effets secondaires indésirables dans votre expérience? –

Questions connexes