【发布时间】:2023-04-09 20:04:02
【问题描述】:
我无法理解如何使用 Criterion 实现以下查询:
SELECT * FROM FooTable WHERE bar = '1' OR bar = '2;
这是我目前拥有的:
public List<FooItem> getFooItems(List<Long> bars) throws SystemException {
DynamicQuery query = DynamicQueryFactoryUtil.forClass(FooItem.class, PortletClassLoaderUtil.getClassLoader());
if (Validator.isNotNull(bars)) {
List<Criterion> barCriteria = new ArrayList<Criterion>();
for (long bar: bars) {
query.add((RestrictionsFactoryUtil.eq("bar", bar)));
}
if (!barCriteria.isEmpty()) {
for (Criterion criteria : barCriteria) {
query.add(criteria);
}
}
}
List<FooItem> result = FooItemLocalServiceUtil.dynamicQuery(query);
return result;
}
但是,我的查询在运行时如下所示:
SELECT * FROM FooTable WHERE bar = '1' AND bar = '2';
我怎样才能把这些AND's 变成OR's 声明?
注意:bar 不是表的主键。
【问题讨论】:
标签: java sql hibernate liferay criteria