2011-01-04 1 views
4

J'essaie de comprendre quelle est la différence de comportement lors de l'application de l'annotation de transaction à une classe par rapport à la méthode (et au niveau de la propriété même?). Quelqu'un at-il un lien solide pour cela ou peut-être même saisir ces différences succinctement pour moi?Annotations de transaction Hibernate dans la source - différence entre la classe et l'utilisation au niveau de la méthode?

Les centaines de liens que j'ai trouvés concernant ces annotations semblent uniquement indiquer comment les utiliser dans les fichiers de configuration plutôt que dans la source. Et dans les rares cas où les utiliser dans la source est même mentionné, il est très ondulé à la main.

Voici un exemple concret de ce que je veux dire par niveau de classe:

@TransactionAttribute(TransactionAttributeType.REQUIRED) 
public class MyKickAssClass { 
} 

et le niveau de la méthode connexe:

public class MyOtherKickAssClass { 
    @TransactionAttribute(TransactionAttributeType.REQUIRED) 
    public void entryPointMethod() { 
     //do some work, call other methods of this class, other fun stuff 
    } 

Je peux faire quelques suppositions sur ce que le comportement est dans ces cas, mais trouver des explications concrètes et des exemples a été un casse-tête.

Nous utilisons JBoss.

Merci d'avance.

Répondre

7

De l'JavaDoc:

L'annotation peut être spécifiée sur la classe de haricots et/ou il peut être spécifié sur les méthodes de la classe qui sont des méthodes de l'interface métier ou non interface vue.

La spécification de l'annotation TransactionAttribute sur la classe bean signifie qu'elle s'applique à toutes les méthodes métier applicables de la classe. La spécification de l'annotation sur une méthode ne s'applique qu'à cette méthode. Si l'annotation est appliquée à la fois au niveau de la classe et au niveau de la méthode, la valeur de la méthode est remplacée si les deux sont en désaccord.

http://download.oracle.com/javaee/6/api/javax/ejb/TransactionAttribute.html

Je recommande aussi de lire le Java EE Tutoriel:

http://download.oracle.com/javaee/6/tutorial/doc/bncih.html

+0

Le comportement décrit dans le premier lien est ce que je suppose, je veux juste explication plus en profondeur et que seconde Le lien me donne ce dont j'ai besoin, merci. – jaydel

Questions connexes