如何使用Hibernate复制记录(在Java中)?

mar*_*osh 6 java hibernate

在同一个表中复制记录的最佳方法是什么?

像这样的东西:

Address address = AddressDAO.get(id);
address.setId(null);
AddressDAO.add(address);
Run Code Online (Sandbox Code Playgroud)

Boz*_*zho 5

是的,那应该有用.

我不确定hibernate是否不检查对象引用,所以如果这不起作用,您可能需要创建一个新实例并复制所有属性(使用BeanUtils.copyProperties,甚至BeanUtils.cloneBean(..)),然后将ID设置为null/0 .


che*_*vim 2

它会起作用,但最好在域模式下表达您的意图(克隆)。将字段设置为 null 只是一个实现细节,没有任何意义。

Address address = AddressDAO.get(id);
Address clone = address.cloneMe();
AddressDAO.add(clone);
Run Code Online (Sandbox Code Playgroud)