Big*_*va2 13 hibernate criteria
我试图使用Hibernate的限制标准like()和部分关键字查询PostgreSQL数据库:
Criterion c1 = Restrictions.like("stateName", "Virg*");
cri.add(c1);
return cri.list();
Run Code Online (Sandbox Code Playgroud)
它不会返回任何内容,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();
}
Run Code Online (Sandbox Code Playgroud)
Jul*_*ves 56
使用枚举MatchMode来帮助您:
Criterion c1 = Restrictions.like("stateName", "Virg", MatchMode.START);
Run Code Online (Sandbox Code Playgroud)
不要使用任何特殊字符,例如*.如果你想要一个不区分大小写的,请使用ilike.
Man*_*nes 11
限制应使用百分比符号.
Criterion c1 = Restrictions.like("stateName", "Virg%");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
48219 次 |
| 最近记录: |