【问题标题】:JPQL SQL make a query base on a list of argumentsJPQL SQL 根据参数列表进行查询
【发布时间】:2023-11-24 01:21:01
【问题描述】:

我有一个类 Person 如下

public class Person{
   String name;
   //----------
}

我想查询名字像“name1”和名字像“name2”,名字像“name3”的人的列表...... 所以,我想有这样的功能

public void queryPersonsWhithNameLike(List<String>  names){
   //here is my query
   String queryStr = "select p from Person p where p.name LIKE :names.get(0) AND p.name LIKE :names.get(1) AND p.name LIKE :names.ger(2) AND......";

}

请问如何使用 sql 和 jpql 编写这样的查询?

【问题讨论】:

  • 按部分划分查询并单独添加每个部分或构造另一个查询。

标签: java sql jpql


【解决方案1】:

public void queryPersonsWhithNameLike(列表名称){ 遍历 List 并构造一个查询:

String queryStr = "select p from Person p";
int count=0;
for(String str:names) {
   if(count==0) queryStr+="WHERE p.name LIKE :name"+count;
   else queryStr+=" AND p.name LIKE :name"+count;
   count++;
}
... Initialize query
for(String str:names) {
... Set all the :name+count as parameters
}

【讨论】: