查询中的JPA作为未给出答案的字符串列表 List results=em.createQuery( “从t中选择t,其中t.status位于('A','E')”) .getResultList();
这是使用CREATEQUERY,不带参数。它运行良好查询中的JPA作为未给出答案的字符串列表 List results=em.createQuery( “从t中选择t,其中t.status位于('A','E')”) .getResultList();,jpa,jpa-2.0,openjpa,Jpa,Jpa 2.0,Openjpa,这是使用CREATEQUERY,不带参数。它运行良好 List<Thing> results = em.createQuery( "select t from Thing t where t.status in ('A', 'E')") .getResultList(); List statusList=new ArrayList(); 状态列表。添加(“A”); 状态列表。添加(“E”); List results=em.createQuery( “从t中选择t,其中t.stat
List<Thing> results = em.createQuery(
"select t from Thing t where t.status in ('A', 'E')")
.getResultList();
List statusList=new ArrayList();
状态列表。添加(“A”);
状态列表。添加(“E”);
List results=em.createQuery(
“从t中选择t,其中t.status位于(““+statusList.toSting()+”)”)
.getResultList();
这不起作用。我不想在(:参数)中进行设置。只需要在上面描述的一个中进行设置您不能像上面那样进行操作,您必须像下面那样在中使用
List<String> statusList= new ArrayList<String>();
statusList.add("A");
statusList.add("E");
List<Thing> results = em.createQuery(
"select t from Thing t where t.status in ('"+statusList.toSting()+"')")
.getResultList();
您的statusList.toSting()
不会生成类似'a','E'
的字符串,因为您已在()
中添加了statusList.toSting()
,因此如果您的最终结果看起来像('a','E')
那么只有您的查询才会给出正确的结果是否有不设置参数的可能解决方案list@muthukumar您可以准备列表i,e中以逗号分隔的内容值,如a、e、B、D。。。。。然后,您可以将其放入((字符串内容:statusList){contents+=content+”,“}
的子句中,并可以使用em.createQuery(“从t中选择t,其中t.status位于+contents+”)。getResultList()代码>
Query query=em.createQuery(
"select t from Thing t where t.status in (:list)")
query.setParameterList("list", statusList)
query.getResultList();