如何使用Hibernate(Java)复制记录?
在同一个表中复制记录的最佳方式是什么
诸如此类:
Address address = AddressDAO.get(id);
address.setId(null);
AddressDAO.add(address);
你可以在下面搜索框中键入要查询的问题!
在同一个表中复制记录的最佳方式是什么
诸如此类:
Address address = AddressDAO.get(id);
address.setId(null);
AddressDAO.add(address);
# 1 楼答案
在hibernate中对该对象使用级联逐出
然后
# 2 楼答案
我建议你试试。如果
adress
仍然是持久的(会话绑定),我会认为会有问题。在将id设置为null之前,可能需要一个session.evict(address)
# 3 楼答案
是的,应该有用
我不确定hibernate是否没有检查对象引用,因此如果这不起作用,您可能需要创建一个新实例并复制所有属性(使用
BeanUtils.copyProperties
,甚至BeanUtils.cloneBean(..)
),然后将ID设置为null/0# 4 楼答案
这是可行的,但最好是在你的域模式下表达你的意图(克隆)。将字段设置为null只是一个实现细节,没有任何意义
# 5 楼答案
这不会是一个很深的副本。。。因此,您的副本将引用原始对象的子对象