繁体   English   中英

如何使用 Criteria API 进行联合查询搜索

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM