java Hibernate 4深度克隆
我需要用一个对象和三个不同的孩子做一个深度克隆(一个对象)
我使用Hibernate中的“SerializationHelper.clone”来完成这项任务,但我只能复制父对象和子对象,用这段代码将子对象的更改id复制到新的父对象,这是不好的
错误在哪里,或者Hibernate 4中此任务的最佳实践是什么
template = (Template) session.get(Template.class,Integer.valueOf(idTemplate));
template.setTextboxes(template.getTextboxes());
template.setVariables(template.getVariables());
Template clone = (Template) SerializationHelper.clone(template);
session.save(clone);
编辑:对于孩子们,我有很多单向关系:
@OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@JoinColumn(name = "template_id")
private Set<Variable> variables = new LinkedHashSet<Variable>();
@OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@JoinColumn(name = "template_id")
private Set<TextBox> textboxes = new LinkedHashSet<TextBox>();
共 (0) 个答案