我不想在我的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;
答案 0 :(得分:6)
使用Hibernate filters或其他where clause。可以在运行时激活和参数化过滤器,而where子句则不能。但它们都用于将一个额外的where子句应用于持久集合。