2017-09-11 8 views
0

こんにちは、私はJPA Criteria Builderのコンセプトを初めて使いました。私はPostgreSQLとJPA Queryを使用しています。このクエリがありますSELECT id、full_name、email from nurses WHERE(lower(sender) %bar% 'とそれより低い(受信者)LIKE'%bar% ')、JPA Criteria Builderに変換する方法JPAクエリーを使用して大文字小文字を区別しないPostgreSQLを作成する方法

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

CriteriaBuilder.lower()はあなたが望むことを行います。

cb.like(cb.lower(data1.get("sender")), "%" + sender + "%") 

や、あなたのパターンがあまりにも小文字にする:

cb.like(cb.lower(data1.get("sender")), cb.lower(cb.literal("%" + sender + "%"))) 
関連する問題