Pytanie Domyślne atrybuty w transakcjach EJB


Czytam java ee docs i chciałbym zadać kilka pytań, aby upewnić się, że dobrze zrozumiałem, co się dzieje z transakcjami EJB.

1) Dokumenty stwierdzają, że defaalt TransactionManagement wartosc jest CONTAINER  i domyślny TransactionAttribute wartosc jest REQUIRED: Jeśli tak, to czy mam rację, że następująca (Sesja) Groszek wykonuje wszystkie swoje metody przy pomocy CONTAINER zarządzane transakcje i atrybut REQUIRED?

@Stateless
public class MyBean{

public void methodA(){
...
}

public void methodB(){
...
}

}

2) Dokument stwierdza: Container-managed transactions do not require all methods to be associated with transactions. When developing a bean, you can set the transaction attributes to specify which of the bean’s methods are associated with transactions.

Jeśli pominę jednak TransactionAttributeType, czy nie jest automatycznie ustawione na REQUIRED? Jest methodB w następnej fasoli nie powiązanej z transakcją?

@Stateless
@TransactionManagement(CONTAINER)
public class MyBean{

@TransactionAttribute(MANDATORY)
public void methodA(){
...
}

public void methodB(){
...
}

}

11
2017-12-31 16:13


pochodzenie




Odpowiedzi:


  1. Tak, CONTAINER i REQUIRED są domyślne.

  2. Cytat, który podałeś, zdaje się pochodzić Samouczek Java EE 5. Zgadzam się, że zdanie jest nieco myląco sformułowane. Oto możliwe przepisanie, które może pomóc.

Transakcje zarządzane przez kontener nie wymagają wszystkich metod korzystania z   domyślna WYMAGANA semantyka transakcji. Podczas tworzenia fasoli ty   może zmienić semantykę transakcji, ustawiając transakcję   atrybuty. Na przykład możesz określić, która metoda powinna zostać uruchomiona   bez transakcji za pomocą atrybutu transakcji NIGDY,


8
2018-01-01 16:57





  1. tak
  2. Domyślnie metoda ma wymagane ustawienia transakcji. Dlatego metoda B () WYMAGANA

1
2018-01-01 16:57