[英]Manage rollback on transaction in my managed bean
我正在使用JPA /休眠,Spring和JSF。
所以我的應用程序組織如下:
我有我的實體,
我的Dao接口和每個實體的實現,在其中定義了基本方法: findById
, add
, update
, remove
...,然后有了服務層,該服務層僅使用DAO接口,並且這些基本與我的DAO中的方法相同。
我的問題是,在我的后備豆中,我有一個方法Add_hospital()
,它添加了一家醫院以及該醫院的服務,所以我的方法看起來像
add_hospital(){
add-hospital();
add-services();
add-Hospital-schedule();
}
所以這個方法是一個事務,我希望如果發生一些問題,事務回滾,但是我知道回滾需要在我的DAO中進行管理,我需要在我的托管bean中定義我的方法Add_hospital()
,在這個階段,我有插入的組合。
請如何解決這個問題?
事務應在服務層而不是數據訪問上進行管理。 春天的例子:
@Transactional(readOnly = true)
public class DefaultFooService implements FooService {
public Foo getFoo(String fooName) {
// do something
}
// these settings have precedence for this method
@Transactional(readOnly = false, propagation = Propagation.REQUIRES_NEW)
public void updateFoo(Foo foo) {
// do something
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.