我想查询使用Hibernate标准/限制like
有部分关键词的Postgres:冬眠限制像
Criterion c1 = Restrictions.like("stateName", "Virg*");
cri.add(c1);
return cri.list();
它不返回任何东西,但Restrictions.like("stateName", "Virginia");
返回正确的记录。我如何使用hibernate中的部分限制?
编辑: 得到它的工作做这样的事情:
public static List<Object> createQueryStringByRegex(Criteria cri,
Parameters p) {
String value = (String) p.value;
if (value.contains("*")) {
value = value.replace("*", "%");
} else {
value += "%";
}
// System.out.println("Value: "+value);
Criterion c1 = Restrictions.ilike(p.property, value);
cri.add(c1);
return cri.list();
}
不使用'ilike'取决于底层数据库是否支持它?即Postgres支持ilike,但其他人可能不支持? – mmcrae
我不相信,至少在文档中没有任何关于它的内容。可能Hibernate本身提供了这个功能。 –
为了他的问题,不应该将MatchMode设置为MatchMode.START? – DanielK