Java Hibernate:更新子对象
我有这样的结构:Java Hibernate:更新子对象,java,hibernate,Java,Hibernate,我有这样的结构: // all objects have valid mapping to database public class Child { private int id; private String name; } public class Parent { private int id; private String name; private List<Child> chidlren; } //所有对象都具有到数据库的有效映射 公营儿
// all objects have valid mapping to database
public class Child {
private int id;
private String name;
}
public class Parent {
private int id;
private String name;
private List<Child> chidlren;
}
//所有对象都具有到数据库的有效映射
公营儿童{
私有int-id;
私有字符串名称;
}
公共类父类{
私有int-id;
私有字符串名称;
私人名单儿童;
}
我必须更新父级A中的特定子级B
有两种方法:
Parent temp=dao.getParent(id)
temp.getChildren.get(0.setName('test')
dao.updateParent(temp);
Child temp=dao.getChild(id)
温度设置名称(“测试”)
dao.updateChild(临时)代码>
谢谢从表面上看,我猜第二种解决方案 2.只更新子对象 会更有效 但是,从数量上确定这一点的唯一方法是打开Hibernate的
show_sql
,捕获解决方案1和解决方案2的sql,为每个解决方案运行解释计划,并比较生成的解释计划
根据父对象和
Parent.children
集合中的其他子对象中更改/未更改的内容,您可能会得到不同的结果。在为解释计划捕获SQL时,您可能希望尝试不同的场景 你试过分析吗?我认为它们几乎是一样的,因为hibernate做了很多事情,如果优化的话。我的观点是,即使使用hibernate优化,第二种解决方案也会更快。当然,如果您没有任何其他疑问。我只是想听听别的想法