jpa – 不区分大小写的查询

前端之家收集整理的这篇文章主要介绍了jpa – 不区分大小写的查询前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一些票号可能有数字和字母混合.我将把ticketNumberIds传递给这个方法(用户输入),我希望它可以针对Oracle数据库进行查询,并且通过大小写的情况让查询的票据不同.

如何进行以下不区分大小写的查询

  1. public List<TicketDO> getTicketDOsById(final List<String> ticketNumberIds) {
  2.  
  3. String myQuery = "from TicketDO t where t.ticketNumberId in (:ticketNumberIds)";
  4.  
  5. return getEntityManager().createQuery(myQuery).setParameter("ticketNumberIds",ticketNumberIds)
  6. .getResultList();
  7.  
  8. }

解决方法

您可以使用UPPER来执行不区分大小写的查询.
  1. public List<TicketDO> getTicketDOsById(final List<String> ticketNumberIds) {
  2.  
  3. String myQuery = "from TicketDO t where UPPER(t.ticketNumberId) in (:ticketNumberIds)";
  4. List<String> upperNumbers = new ArrayList<String>();
  5. for (String number : ticketNumberIds) {
  6. upperNumbers.add(number.toUppercase());
  7. }
  8. return getEntityManager().createQuery(myQuery).setParameter("ticketNumberIds",upperNumbers)
  9. .getResultList();
  10.  
  11. }

猜你在找的Java相关文章