我似乎无法运行这个简单的查询。我有一个id列表,我想从db。
中检索具有此id的所有行 List<String> uniqueIds is my list.
我试过了String q = "SELECT item FROM Tenant item WHERE item.id IN (:"+uniqueIds+")";
我也试过这个没有:和()。他们没有工作。我究竟做错了什么。我也试过(String uniqueId:uniqueIds){ in + = uniqueId +“,”; }
并使用“in”!
感谢。
答案 0 :(得分:9)
您应该将参数绑定到查询。参数是匿名的(?
)或命名的(: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();