您好我是JPA Criteria构建器概念的新手,我正在使用PostgreSQL和JPA Query。我得到了这个查询SELECT id,full_name,email FROM nurses WHERE(lower(sender)LIKE'%bar%&#39 ;并降低(接收者)LIKE'%bar%')。但是如何将其转换为JPA Criteria构建器。
entityManager.getTransaction().begin();
CriteriaBuilder cb = entityManager.getCriteriaBuilder();
System.out.println(entityManager + " Conected");
CriteriaQuery<sourceTracking> cq = cb.createQuery(sourceTracking.class);
Root<sourceTracking> data1 = cq.from(sourceTracking.class);
cq.where(cb.like(data1.<String>get("sender"), "%"+sender+"%"),cb.like(data1.<String>get("receiver"), "%"+receiver+"%");
cq.select(data1);
TypedQuery<sourceTracking> tquery = entityManager.createQuery(cq);
sourselList = tquery.getResultList();
答案 0 :(得分:1)
CriteriaBuilder.lower()
会做你想做的事。
e.g。
cb.like(cb.lower(data1.get("sender")), "%" + sender + "%")
或者,也可以使你的模式小写:
cb.like(cb.lower(data1.get("sender")), cb.lower(cb.literal("%" + sender + "%")))