如何将一组对象发送到需要所有对象的“id”的NamedQuery。
我正在根据从jsp页面中的多选表单元素收到的信息构建报告。
在我的存储库类中,我从该元素获取了一个对象数组。 我需要为这些对象中的每一个调用getId
函数,并将这些id发送到NamedQuery
。
这是一个帮助解释的代码示例。 我知道如何处理单个对象,但是在.setParameter(1, employees[].getId())
部分中丢失了.setParameter(1, employees[].getId())
对象。
public List getFormInformation( Employee[] employees) throws NoDataFoundException { List resultList = getEm().createNamedQuery( "requestByRequestor.getRequestsByRequesters", RequestByRequester.class) .setParameter(1, employees[].getId()) .getResultList(); return resultList; }
通过请求查询:
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
我试着打电话给Madame Mystique寻求帮助,找出你的查询实际上是什么,但没有运气,所以我只是想去…
您的命名查询应如下所示:
select x from MyClass x where x.children.id in (:ids)
然后将你的ID列入清单
List ids = new ArrayList (); ids.add(someid); // etc
然后使用它在您的查询中指定它
.setParameter("ids", ids)