首页 > 解决方案 > 我正在尝试从休眠迁移到 JPA,并遇到了 Restrictions.ilike 的休眠标准。如何将其转换为 JPA?

问题描述

无论如何在不使用hibernate的情况下将下面的代码转换为JPA?我一直在环顾四周,但什么也没想到。提前致谢!

deCrit.add(Restrictions.ilike(fieldName, fieldValue, MatchMode.ANYWHERE));

标签: javahibernatejpamigrationrestriction

解决方案


因此您将拥有一个 jpa 标准对象,您可以在该对象上调用传递谓词数组的 where 方法。类似于

    String fieldValue = "search terms";
    CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();
    CriteriaQuery<AType> criteriaQuery = criteriaBuilder.createQuery(AType.class);
    Root<AType> somePath = criteriaQuery.from(AType.class);
    criteriaQuery.where(criteriaBuilder.like(criteriaBuilder.upper(somePath.get("fieldName")),
            "%" + fieldValue.toUpperCase() + "%"));
    List<AType> result = entityManager.createQuery(criteriaQuery).getResultList();

推荐阅读