Hibernate аннотации транзакций в источнике - разница между использованием класса и уровня метода? - PullRequest
4 голосов
/ 04 января 2011

Я пытаюсь понять, в чем разница в поведении при применении аннотации транзакции к классу против метода (и даже на уровне свойств?).У кого-нибудь есть надежная ссылка для этого, или, может быть, я могу кратко описать эти различия для меня?

Сотни ссылок, которые я нашел относительно этих аннотаций, похоже, касаются лишь того, как использовать их в файлах конфигурации, а нев источнике.И в редком случае, когда использование их в источнике даже упоминается, оно очень волнистое.

Вот конкретный пример того, что я имею в виду под уровнем класса:

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

и связанный методуровень:

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

Я могу предположить, что такое поведение в этих случаях, но найти конкретные объяснения и примеры было головной болью.

Мы используем JBoss.

Заранее спасибо.

1 Ответ

7 голосов
/ 04 января 2011

Из JavaDoc:

Аннотация может быть указана для класса компонента и / или для методов класса, которые являются методами бизнес-интерфейса или представления без интерфейса.

Указание аннотации TransactionAttribute для класса компонента означает, что оно применяется ко всем применимым бизнес-методам класса.Указание аннотации для метода применяет его только к этому методу.Если аннотация применяется как на уровне класса, так и на уровне метода, то значение метода переопределяется, если оба не согласны.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...