【发布时间】:2012-04-11 19:29:34
【问题描述】:
我必须在特定字段 myProperity(在类 MyClass 上)创建 Criteria 或 Criterion。我必须选择所有具有 prop = null 或满足 特定条件 的对象。所以我应该做这样的事情:
Criteria criteria = this.sessionManager.getCurrentSession().createCriteria(MyClass.class);
specificCriteria = criteria.createCriteria('myProperity');
/* definition of specificCriteria */
Disjunction disjunction = Restrictions.disjunction();
disjunction.add(Restrictions.isNull('myProperity'));
disjunction.add(specificCriteria);
criteria.add(disjunction);
问题是由事实引起的:
- 我不能向 Disjunction 添加 Criteria(对 Disjunction 只能添加一个 Criterion),所以行: disjunction.add(specificCriteria);错了
- 我无法以某种方式修改特定标准,以接受 null,因为我无法为 null 制定标准。 (它给了我 NullPointerException)
你知道如何处理它吗?
【问题讨论】:
-
析取是一个条件,因此您可以将其添加到条件中。
-
是的,我漏掉了一行:criteria.add(disjunction);但事实并非如此。
-
问题是我不能添加 Criteria do disjunction: disjunction.add(specificCriteria);
标签: hibernate hibernate-criteria