在将条件查询与休眠一起使用时,如何将“OR”条件放在一起?
我正在尝试使用休眠条件查询对三个字段执行基本的“OR”。
例
class Whatever{
string name;
string address;
string phoneNumber;
}
我想构建一个条件查询,其中我的搜索字符串可以与“名称”或“地址”或“电话号码”匹配。
我正在尝试使用休眠条件查询对三个字段执行基本的“OR”。
例
class Whatever{
string name;
string address;
string phoneNumber;
}
我想构建一个条件查询,其中我的搜索字符串可以与“名称”或“地址”或“电话号码”匹配。
您想使用 .这样Restrictions.disjuntion()
session.createCriteria(Whatever.class)
.add(Restrictions.disjunction()
.add(Restrictions.eq("name", queryString))
.add(Restrictions.eq("address", queryString))
.add(Restrictions.eq("phoneNumber", queryString))
);
请参阅此处的休眠文档。
假设您手头有一个休眠会话,那么类似下面的内容应该可以工作:
Criteria c = session.createCriteria(Whatever.class);
Disjunction or = Restrictions.disjunction();
or.add(Restrictions.eq("name",searchString));
or.add(Restrictions.eq("address",searchString));
or.add(Restrictions.eq("phoneNumber",searchString));
c.add(or);