簡體   English   中英

持久對象何時分離

[英]When does a persistent object become detached

有人可以通過一個示例將確切的持久對象變成分離對象來幫助我理解嗎?

在以下情況下它將分離:

  1. 您顯式調用.detach()
  2. 關閉會議
  3. 關閉實體經理

取決於您使用的持久性上下文(事務或擴展)。 請參閱此鏈接以獲取描述。 基本上與其他答案不同,當使用事務PersistenceContext提交事務時,答案會錯過分離

我認為,關於何時分離實體的最佳理解是查看JPA規范對實體生命周期的描述。

分離的實體實例是具有與(或不再)與持久性上下文關聯的持久性身份的實例。

這意味着即使實體是新創建的,也可以將其視為已分離。 假設我們的實體A的ID標記為@Id @GeneratedValue 因此,基本上,JPA提供者將負責分配ID。 但是,如果您將顯式指定A的ID(例如a.setId(1) ),然后將其傳遞給persist() ,則會得到異常。

暫無
暫無

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

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