4

我不想在我的 webapp 中执行删除操作。因此,如果删除记录,我会在所有表中保留一个等于 P 的列状态。默认情况下,我希望在获取记录时这样做;不应获取 status = P 的实体;即一个额外的 where 子句应该发生... 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;
4

1 回答 1

6

使用Hibernate 过滤器或附加的where 子句。过滤器可以在运行时激活和参数化,而 where 子句不能。但是它们都用于将附加的 where 子句应用于持久集合。

于 2012-05-27T14:33:22.330 回答