簡體   English   中英

如何堅持實體兩次JPA

[英]How to persist Entity twice JPA

我有一個實體,代表客戶發送的訂單,此訂單可能會在與客戶通過電話進行一些討論后更新,但客戶發送的初始訂單必須保留而不更新。 我如何能夠堅持兩次相同的實體,使用深度克隆是否有效。 我試圖分離實體,以便持久化上下文保持新的,但仍然持久化上下文正在更新第一個條目。

您不能在一個會話中兩次保留一個對象,因此您需要復制訂單並再次保存(保留)它。 使用新生成的ID將hibernate復制對象值復制到新對象中

這是一個有趣的問題。 我認為最快的解決方案可能是使用多部分ID。 第一部分是原始訂單號,然后每次更改都會增加密鑰的第二部分。 在您的代碼中,您只需要找到對象,確保它已分離,更改密鑰的第二部分然后保留它。 只要它已被分離,它就應該作為新訂單保存下來。

這篇文章向您展示了如何使用復合鍵

您需要克隆/復制對象,確保它具有唯一的ID(如果生成則為null)。

在EclipseLink中有一個用於復制對象的API,

http://wiki.eclipse.org/EclipseLink/Examples/JPA/AttributeGroup#Copy_Examples

暫無
暫無

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

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