簡體   English   中英

JPA:無狀態會話Bean和受管實體

[英]JPA: stateless session beans and managed entities

假設我有一個名為Foo的JPA實體,它具有String myStr屬性;

現在,當我像這樣定義無狀態會話Bean時:

@Stateless
@LocalBean
public class FooBean {

    @PersistenceContext(unitName="foo-pu")
    private EntityManager em;

    public Foo getFoo(int id) {
         return em.find(Foo.class,id);
    }

    public void changeMyStr(Foo entity) {
         entity.setMyStr("fooStr");
    }

}

將所做的更改changeMyStr()成為堅持如果我通過之前獲取Foo對象通過getFoo()

只要您在同一事務中對getFoo(...)changeMyStr(...)進行調用,就可以getFoo(...)Foo實例的更改(如果已提交該事務)。 實體通常成為一旦你離開了交易分離,所以如果你調用getFoo(...)在一個事務和changeMyStr(...)在另一個里面所做的更改changeMyStr(...)以及任何其他更改外發原始交易)將不會保留。

如果使用擴展的持久性上下文 ,則離開原始事務時,實體不會分離,但這是一種非常不尋常的情況。 閱讀這篇文章或者這個的更多細節。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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