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

时间:2012-05-27 14:23:34

标签: 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;

1 个答案:

答案 0 :(得分:6)

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