There is a dynamic version of the @Where
setting, it is the @Filter
. See:
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:
<filter-def>
/ @FilterDef
is needed to define filter
<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
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…