繁体   English   中英

JPQL查询where子句使用IN,如何将参数传递给查询

[英]JPQL query where clause using IN, How to pass the parameter to the query

我有JPQL查询,以下查询得到的结果为空。 请参阅随附的代码

String names = "'laptop','mobile'"; 
LoadContext testDataQuery = LoadContext.create(testData.class);
testDataQuery.setQuery(LoadContext.createQuery(
         "select pd from demo$TestData pd where pd.dataName.name in (:names)")
    .setParameter("measures", names)); 

List testDataQueryList = dataManager.loadList(testDataQuery); // Here I am getting empty list.

请告诉我,如何将名称传递给要求In的JPQL。

谢谢!!

使用IN参数的List而不是String 如果将names声明更改为此,则您的示例应该可以工作:

List<String> names = Arrays.asList("laptop", "mobile");

并保持其他一切不变。

请注意,您也可以在IN子句中删除括号

pd.dataName.name in :names

希望这可以帮助!!

您可以将名称List添加到setParameter方法中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM