3

我似乎无法运行这个简单的查询。我有一个 id 列表,我想从 db 中检索所有具有此 id 的行。

 List<String> uniqueIds is my list.

我试过了String q = "SELECT item FROM Tenant item WHERE item.id IN (:"+uniqueIds+")";

我也试过这个没有:和()。他们都没有工作。我究竟做错了什么。我还尝试了 for (String uniqueId : uniqueIds) { in += uniqueId + ","; }

并且也使用了“in”!

谢谢。

4

1 回答 1

11

您应该将参数绑定到查询。参数是匿名 ( ?) 或命名 ( :parameterName):

TypedQuery<Tenant> query = 
    em.createQuery("select item from Tenant item where item.id in :ids", Tenant.class);
query.setParameter("ids", uniqueIds);
List<Tenant> result = query.getResultList();
于 2012-09-18T21:57:37.117 回答