Java 休眠持久化父对象或子对象
我想在“Foo”对象的“Bar”列表中添加一个“Bar”对象。因此,我创建了“Bar”对象,将“foo”变量设置为父对象,并将该对象添加到“Bar”列表中。现在我的问题是:我是坚持使用“Foo”还是“Bar”对象。如果我只添加一个对象,这两种方法都有效。如果将多个“Bar”对象添加到“Foo”对象中,则会出现错误:“行被另一个事务更新或删除(或者未保存的值映射不正确)” 所以我认为正确的方法是,持久化“Bar”对象。但是如果我这样做->我就不能更新我的“numberbar”-变量 有什么建议吗,保存对象并更新“numberBars”-变量的最佳方法是什么Java 休眠持久化父对象或子对象,java,hibernate,orm,mapping,Java,Hibernate,Orm,Mapping,我想在“Foo”对象的“Bar”列表中添加一个“Bar”对象。因此,我创建了“Bar”对象,将“foo”变量设置为父对象,并将该对象添加到“Bar”列表中。现在我的问题是:我是坚持使用“Foo”还是“Bar”对象。如果我只添加一个对象,这两种方法都有效。如果将多个“Bar”对象添加到“Foo”对象中,则会出现错误:“行被另一个事务更新或删除(或者未保存的值映射不正确)” 所以我认为正确的方法是,持久化“Bar”对象。但是如果我这样做->我就不能更新我的“numberbar”-变量 有什么建议吗,
public Foo {
@OneToMany(cascade = CascadeType.ALL)
private List<Bar> bars;
int numberBars;
}
public Bar {
@ManyToOne
@JoinColumn
private Foo foo;
}
publicfoo{
@OneToMany(级联=级联类型.ALL)
私人酒吧名单;
整数;
}
公共酒吧{
@许多酮
@连接柱
私人富福;
}
为什么有一个numberBars
变量?出于性能原因,您可以随时使用bars.size()
或SELECT COUNT(*)…
。来获得该值。请看stackoverflow起始页。有很多问题。如果你必须为每一条加载评论,我认为这对性能有很大影响?只显示一个字段要有效得多