我在项目中遇到了使用getPersistenceManager().refresh(entity);
的部分代码。当我检查被解雇的Hibernate查询时。很少有其他查询被触发,并且是要刷新的实体的子元素。
为什么会触发这些查询?为什么不解雇所有子实体?
编辑:
@OneToMany(fetch = FetchType.LAZY, mappedBy = "entity", cascade = { CascadeType.PERSIST,
CascadeType.REMOVE, CascadeType.REFRESH })
@JoinColumn(name = "ENTITY_TABLE", nullable = false)
private List<Employee> employee; // This is an example. Actual code resembles this example.
答案 0 :(得分:0)
由于您未能发布任何代码,因此很难说,但最可能的解释是关联中未定义相关的级联选项。
http://docs.oracle.com/javaee/7/api/javax/persistence/CascadeType.html#REFRESH
@Entity
public class Parent{
// on of the following would have to be defined
//@OneToMany(cascade = CascadeType.ALL)
@OneToMany(cascade = CascadeType.REFRESH)
public Set<Child> children;
}