源代码中的Hibernate事务注释 - 类和方法级别之间的区别使用?

jay*_*del 4 hibernate transactions

我试图理解在将事务注释应用于类与方法(以及在属性级别甚至?)时行为的差异.有没有人有这个可靠的链接,或者甚至可以简洁地捕捉这些差异对我来说?

我发现有关这些注释的数百个链接似乎只解决了如何在配置文件中而不是在源中使用它们.在极少数情况下甚至提到在源头使用它们,它是非常手工波浪状的.

这是我在课堂级别上的具体例子:

@TransactionAttribute(TransactionAttributeType.REQUIRED)
public class MyKickAssClass {
}
Run Code Online (Sandbox Code Playgroud)

和相关的方法级别:

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

我可以猜测这些情况下的行为是什么,但找到具体的解释和例子一直很令人头疼.

我们正在使用JBoss.

先感谢您.

jpk*_*ing 7

来自JavaDoc:

可以在bean类上指定注释和/或可以在类的方法上指定注释,这些方法是业务接口或无接口视图的方法.

在bean类上指定TransactionAttribute批注意味着它适用于该类的所有适用的业务方法.在方法上指定注释仅将其应用于该方法.如果在类和方法级别应用注释,则方法值将覆盖两者是否不一致.

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

我还建议阅读Java EE教程:

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