gpt4 book ai didi

java - 如何使用 JPA 查询使 PostgreSQL 不区分大小写

转载 作者:行者123 更新时间:2023-11-29 12:54:50 29 4
gpt4 key购买 nike

您好,我是 JPA Criteria builder 概念的新手,我正在使用 PostgreSQL 和 JPA Query。我得到了这个查询 SELECT id, full_name, email FROM nurses WHERE(lower(sender) LIKE '%bar%' and lower(receiver) LIKE '%bar%'). 但如何将其转换为 JPA Criteria builder。

 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();

最佳答案

CriteriaBuilder.lower() 会做你想做的事。

例如

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

或者,让你的模式也变成小写:

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

关于java - 如何使用 JPA 查询使 PostgreSQL 不区分大小写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46158534/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com