簡體   English   中英

管理托管bean中的事務回滾

[英]Manage rollback on transaction in my managed bean

我正在使用JPA /休眠,Spring和JSF。
所以我的應用程序組織如下:
我有我的實體,
我的Dao接口和每個實體的實現在其中定義了基本方法: findByIdaddupdateremove ...,然后有了服務層,該服務層僅使用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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM