我正在根据从jsp页面中的多选表单元素收到的信息构建报告.
在我的存储库类中,我从该元素获取了一个对象数组.我需要为getId这些对象中的每一个调用该函数并将这些id发送给NamedQuery.
这是一个帮助解释的代码示例.我知道如何处理单个对象但是在对象数组中我迷失了.setParameter(1, employees[].getId())部分.
public List<RequestByRequester> getFormInformation(
Employee[] employees)
throws NoDataFoundException {
List<RequestByRequester> resultList = getEm().createNamedQuery(
"requestByRequestor.getRequestsByRequesters", RequestByRequester.class)
.setParameter(1, employees[].getId())
.getResultList();
return resultList;
}
Run Code Online (Sandbox Code Playgroud)
通过请求查询:
SELECT EMP.EMPL_FIRST_NAME || ' ' || EMP.EMPL_LAST_NAME REQUESTER,
R.RQST_ID RQST_ID,
R.TITLE TITLE,
R.DESCRIPTION DESCR,
DECODE(R.RESOLUTION_DATE, NULL, 'Open', 'Closed') STAT
FROM TARTS.REQUESTS R, SYS_EMPLOYEES EMP
WHERE R.EMPL_ID_REQUESTED_BY = EMP.EMPL_ID
AND EMP.EMPL_ID IN (?)
ORDER BY 1, 5 DESC, 2
Run Code Online (Sandbox Code Playgroud)
我试着打电话给Madame Mystique寻求帮助,找出你的查询实际上是什么,但没有运气,所以我只是去找它......
您的命名查询应如下所示:
select x
from MyClass x
where x.children.id in (:ids)
Run Code Online (Sandbox Code Playgroud)
然后将你的ID列入清单
List<Integer> ids = new ArrayList<Integer>();
ids.add(someid); // etc
Run Code Online (Sandbox Code Playgroud)
然后使用它在您的查询中指定它
.setParameter("ids", ids)
Run Code Online (Sandbox Code Playgroud)