有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案