I have an entity:
@Entity
@Table(name = \"[Usermaster]\")
@Where(clause = \"isDeleted = 0\")
public class User {
//...
}
in some flow I nee
Old question, but the answer might be here:
simple solution is to use native SQL:
lst = sessionFactory.getCurrentSession().
createSQLQuery("select {entb.*} from EntityB entb where is_deleted=1")
.addEntity("entb", EntityB.class)
.list();
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 setsession.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