我有一个 ID 列表:
List<Object> ids;
我需要在条件查询中使用它来获取具有ids
包含的 id 的所有行。
我现在拥有的和工作的:
if (ids.size() > 0) {
for (Object id : ids) {
preparedResults.add((T)sessionMngr.getSession().
createCriteria(rowType).add(Restrictions.idEq(id))
.uniqueResult());
}
}
所以我一个一个地获取它们,这不是最佳的,但我首先尝试了类似以下的方法来在一个查询中获取它们,但不知道在??? :
preparedResults.addAll(sessionMngr.getSession().
createCriteria(rowType).
add(Restrictions.in(???, ids)).list());
Restrictions.in()的第一个参数是字符串类型。我不能在那里放置硬编码的“id”,因为我不知道属性名是什么。所以我不知道如何在那里将 id 属性作为字符串获取。我看到了 Projections.id(),但我不确定是否可以使用它来获取它作为字符串。