繁体   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