Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
查询中的JPA作为未给出答案的字符串列表 List results=em.createQuery( “从t中选择t,其中t.status位于('A','E')”) .getResultList();_Jpa_Jpa 2.0_Openjpa - Fatal编程技术网

查询中的JPA作为未给出答案的字符串列表 List results=em.createQuery( “从t中选择t,其中t.status位于('A','E')”) .getResultList();

查询中的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

这是使用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.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();