Criteria Builder Convert下不同的变体

时间:2018-12-06 13:14:49

标签: jpa criteria criteria-api

我在任何地方看到的人都在使用

predicate = 
    criteriaBuilder.like(criteriaBuilder.lower(root.get(Product_.prodName)), 
                         wrapper.getProdName());

尤其是我的意思是Product_.prodName。我不知道它是什么,它做什么以及为什么不能在我的上下文中使用或拥有它。这是我的无效代码:

使用!nachname.isEmpty查看行​​

CriteriaBuilder builder = em.getCriteriaBuilder();
        CriteriaQuery<Telefonbuch> query = builder.createQuery(Telefonbuch.class);
        Root<Telefonbuch> root = query.from(Telefonbuch.class);

        EntityType<Telefonbuch> model = em.getMetamodel().entity(Telefonbuch.class);
        List<Predicate> predicates = new ArrayList<Predicate>();

        if (!vorname.isEmpty()) {   
            Predicate condition = builder.like(root.<String>get("vorname"),"%"+vorname+"%");
            predicates.add(condition);
        }
        if (!nachname.isEmpty()) {
            Predicate condition = builder.like(builder.lower(root.get("nachname"),"%"+nachname+"%"));
            predicates.add(condition);
        }

        query.select(root).where(predicates.toArray(new Predicate[predicates.size()]));
        eintraege = em.createQuery(query).getResultList();

0 个答案:

没有答案