Возможно ли включить транзакции для методов, выполняющих вызовы только для методов DAO (объекта доступа к данным)?
class BusinessLayerFacade implements Facade {</p>
<pre><code>//no transaction handling allowed here
public X foo() {
//do something
}
public Y changed(DomainObject myObject) {
//do something
//<-- start transaction
// calling DAO
//do something
// calling DAO
//<-- end transaction
}
}
Разрешитьтранзакции для всех методов в BusinessLayerFacade
вызывают некоторые нежелательные фиксации в базе данных.Например, когда foo () вызывается, выдается Exception
при выполнении changed(DomainObject myObject)
, myObject
передается в базу данных вместо отмены изменений при откате транзакции.
Есть идеи?
Это определенно возможность фильтровать методы по имени. Но не могли бы мы добавить немного магии ;-) Можно ли начать транзакцию при первом вызове метода DAO в changed()
и начать коммит , вернувшись с changed()
.Если это возможно, мне не нужно быть осторожным, называя новые методы в классе.
Спасибо, Стефан