[英]How to make a union query search using Criteria API
我尝试使用输入字符串在 db 中搜索多个字段。
我使用 HQL 得到了什么。
@Override
public List<Teacher> searchByString(String str) {
String[] fields = {"fam", "name", "otch", "phoneNumber"};
List<Teacher> result = new ArrayList<>();
for (int i = 0; i < fields.length-1 ; i++) {
result.addAll(em.createQuery(
"SELECT c FROM Teacher c WHERE lower(c." + fields[i] + ") LIKE lower(?1)")
.setParameter("1", "%" + str + "%")
.getResultList());
}
result.addAll(em.createQuery(
"SELECT c FROM Teacher c WHERE to_char(c." + "dateOfBirth, 'yyyy-mm-dd'" + ") LIKE ?1")
.setParameter("1", "%" + str + "%")
.getResultList());
return result;
}
这个例子有效,但我需要在标准中有它。 我在标准 API 中没有发现任何关于“联合”的信息。 我怎样才能达到这个结果?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.