我找不到答案的简单问题。
如果我有一个与B和C有关系的实体A和一个CascadeType.ALL。然后我修改A,并保存它。
然后在查询中,如果这些映射声明为LAZY,Hibernate会使用B和C进行连接表。实体B和C根本没有变化,因此我们应该为这些实体使用Hibernate代理。
但是当我看到日志文件时,我可以看到A与B和C之间的“左外连接”。
我在MySQL中遇到问题,因为允许最大连接数(61)。
问候。
答案 0 :(得分:0)
你的问题不明确!
假设您在询问 - 您的实体 A 与 B 和 C 有关系。如果您更新并保存A,B和C将自动保存吗?
如果是这种情况,需要适当的级联类型。
如果您希望在保存 A 时保存实体 B 和 C ,则需要 cascade = CascadeType.UPDATE < / strong>
A {
@OneToMany(cascade = CascadeType.Update, fetch = FetchType.LAZY)
B b;
}
答案 1 :(得分:0)
您的问题不明确
如果您想在更新A时知道hibernate是否更新(B和C)?如果您的级联未设置为UPDATE或SAVE_UPDATE,则答案为NO。 (A的id不会改变)。
除此之外,由于你的获取是LAZY,你不能修改C和B