簡體   English   中英

JOne合並@OneToOne實體關系

[英]JPA merge of a @OneToOne entity relationship

我在兩個JPA實體之間有一個@OneToOne關系,下面的示例被簡化而不是真實的實體名稱。

@Entity
public class Stock {

    @Id
    private Long id;

    @OneToOne(fetch = FetchType.Lazy, mappedBy = "stock", cascade = CascadeType.ALL)
    private StockDetail detail;

}

和StockDetail

@Entity
public class StockDetail {

    @Id
    private Long id;

    @OneToOne
    @JoinColumn(name = "STOCK_ID")
    private Stock stock;
}

在我的示例中,我需要按ID搜索庫存,然后使用merge例如更新庫存明細。

Stock stock = em.find(Stock.class, 1L);
StockDetail detail = stock.getDetail();
// Do some updates to detail
detail = em.merge(detail);

此時,通過調試器,我可以看到合並返回的detail是更新的JPA實體。 但是,當我再次執行以下操作時,我遇到了一個問題。

Stock stock = em.find(Stock.class, 1L);
StockDetail detail = stock.getDetail();

現在, detail似乎具有實體的舊狀態,我不確定上述問題是什么

這實際上是@NicoVanBelle和@ janith1024注釋的組合。

  1. 有兩個實體管理器,一個非緩存的em用於執行查找,另一個緩存的em用於進行合並。
  2. 一旦我使非緩存的em對股票進行合並,它便開始工作。

暫無
暫無

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

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