在Hibernate JPA中; OneToMany如何过滤结果; 因为我不想删除任何数据

Dee*_*pak 4 hibernate jpa

我不想在我的webapp中执行删除操作.因此,如果删除记录,我会在所有表中保留一个列状态,该列等于P. 默认情况下,我希望在获取记录时; 不应提取状态为= P的实体; 即一个额外的where子句应该发生......其中status = A; 或状态!= P.

使用注释实现它的最佳方法是什么?我当然可以写一个手动查询..

例如:我的用户类可以有多个子级.我们如何实现,以便user.getChilds()不返回状态为P的子级

User.java
   @OneToMany( mappedBy = "usr",
            targetEntity = Child.class,
            fetch = FetchType.EAGER,
            cascade = CascadeType.ALL )
    @OrderBy( "fullName ASC" )
    List<Child> childs;

Child.java:
    @ManyToOne
    @JoinColumn
    User usr;
Run Code Online (Sandbox Code Playgroud)

JB *_*zet 6

使用Hibernate过滤器或其他where子句.可以在运行时激活和参数化过滤器,而where子句则不能.但它们都用于将一个额外的where子句应用于持久集合.