Hibernate how to ignore @Where annotation

前端 未结 2 1536
天命终不由人
天命终不由人 2020-12-21 17:59

I have an entity:

@Entity
@Table(name = \"[Usermaster]\")
@Where(clause = \"isDeleted = 0\")
public class User {
//...
}

in some flow I nee

2条回答
  •  有刺的猬
    2020-12-21 18:40

    There is a dynamic version of the @Where setting, it is the @Filter. See:

    • 19.1. Hibernate filters

    Hibernate has the ability to pre-define filter criteria and attach those filters at both a class level and a collection level. A filter criteria allows you to define a restriction clause similar to the existing "where" attribute available on the class and various collection elements.

    Management of @Filter is a bit more complex, in a nutshell:

    • / @FilterDef is needed to define filter
    • / @Filter must be assigned to class or a set
    • filter must be enabled on a session level, e.g.: session.enableFilter("myFilter").setParameter("myFilterParam", "some-value");

    So, this, while being a bit more complex, provides exactly what we need: dynamic @Where to be turned on/off in run-time

提交回复
热议问题