Скажем, у меня есть два EJBs A и B:Выполняется ли это при транзакции?
public class A implements AInterface {
private B b;
...
//This method will NOT access database directly
public void a() {
//do something
b.b();
//do something
}
...
}
public class B implements BInterface {
@TransactionAttribute(TransactionAttributeType.SUPPORTS)
public void b() {
//Read database
}
}
- Аа() не подключается к базе данных, но вызывает Bb()
- Bb() делает ВЫБРАТЬ в базу данных
- Aa() имеет атрибут транзакции по умолчанию, который в этом контейнере НЕОБХОДИМО
Будет ли вызов Aa() запущен в транзакции? Является ли транзакция инициированной, когда введена A.a(), когда введен B.b(), когда к базе данных обращаются или в другое время?
Baseline является то, что я не хочу, чтобы это было работать в транзакции, так что я мог бы использовать NotSupported для Аа(), я предполагаю (?), но я пытаюсь понять, как и с участием или нет использование базы данных в разных точках стека вызовов влияет на транзакции.
Какие рамки вы используете для включения транзакций? Весна? – 2010-12-03 14:21:00
Просто EJB3 с Weblogic. Но если он ведет себя по-разному в разных рамках, я хотел бы узнать об этом тоже :) – fish 2010-12-03 14:29:06