什么都得到getPersistenceManager()。refresh(实体)加载?

时间:2016-05-26 11:01:19

标签: java hibernate jpa

我在项目中遇到了使用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.

1 个答案:

答案 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;

}