Java 如何将对象数组发送到需要;id";在所有对象中。
我正在根据从jsp页面中的多选择表单元素接收到的信息构建一个报告 在我的repository类中,我从该元素获得一个对象数组。我需要为每个对象调用Java 如何将对象数组发送到需要;id";在所有对象中。,java,arrays,jpa,Java,Arrays,Jpa,我正在根据从jsp页面中的多选择表单元素接收到的信息构建一个报告 在我的repository类中,我从该元素获得一个对象数组。我需要为每个对象调用getId函数,并将这些id发送到NamedQuery 下面是一个代码示例来帮助解释。我知道如何处理单个对象,但对于一组对象,我在.setParameter(1,employees[].getId())部分迷失了方向 public List<RequestByRequester> getFormInformation(
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;
}
我试着打电话给Mystique夫人,希望她能帮我找出你的问题到底是什么,但运气不好,所以我只想试试 您的命名查询应如下所示:
select x
from MyClass x
where x.children.id in (:ids)
然后把你的身份证写进一个列表
List<Integer> ids = new ArrayList<Integer>();
ids.add(someid); // etc
我试着打电话给Mystique夫人,希望她能帮我找出你的问题到底是什么,但运气不好,所以我只想试试 您的命名查询应如下所示:
select x
from MyClass x
where x.children.id in (:ids)
然后把你的身份证写进一个列表
List<Integer> ids = new ArrayList<Integer>();
ids.add(someid); // etc
“namedQueries.queryName”看起来像什么?也许你可以做一个“in”并给它一个ID列表?这个问题实际上是一个JPA问题,而不是Spring问题,不是吗?@bkent314我可以把实际的查询名称放在一个字符串上。我只是想让它不那么混乱,但似乎我实现了相反的目标。我对java/jpa/spring非常陌生,认为这是一个与spring相关的问题。对不起^ ^没问题!信息越多越好。波希米亚人给了你一个很好的答案,“namedQueries.queryName”是什么样子的?也许你可以做一个“in”并给它一个ID列表?这个问题实际上是一个JPA问题,而不是Spring问题,不是吗?@bkent314我可以把实际的查询名称放在一个字符串上。我只是想让它不那么混乱,但似乎我实现了相反的目标。我对java/jpa/spring非常陌生,认为这是一个与spring相关的问题。对不起^ ^没问题!信息越多越好。波希米亚人给了你一个很好的答案,我想我明白了。我正在考虑做类似的事情,但是通过employee数组将ID附加到字符串并将该字符串作为参数发送,从而为每个人执行一个for。你的干净多了。非常感谢。我知道这很旧,但我不明白
x.children.id
是如何工作的。是否也要执行此操作:从myClass中选择*,其中myClass.theColumn不在(:ListofNumber stoExclude)
?谢谢@HQLx.children.id
中的shanehoban为您加入children
映射到getChildren()
,它返回一组具有对x
的外键引用的实体。整个HQL查询相当于select x.*from MyTable x join ChildTable c on c.myTableId=x.id,其中c.id位于(:id)
。外键信息在子类的getMyClassId()
方法上的@ManyToOne
注释中定义。是不在(:id)
中也起作用。顺便说一句,在原生HQL中,所有引用的表都必须有别名,因此,从myClass t中选择t,其中…
和选择
是可选的,因此,从myClass t中选择…
可以工作,我想我理解。我正在考虑做类似的事情,但是通过employee数组将ID附加到字符串并将该字符串作为参数发送,从而为每个人执行一个for。你的干净多了。非常感谢。我知道这很旧,但我不明白x.children.id
是如何工作的。是否也要执行此操作:从myClass中选择*,其中myClass.theColumn不在(:ListofNumber stoExclude)
?谢谢@HQLx.children.id
中的shanehoban为您加入children
映射到getChildren()
,它返回一组具有对x
的外键引用的实体。整个HQL查询相当于select x.*from MyTable x join ChildTable c on c.myTableId=x.id,其中c.id位于(:id)
。外键信息在子类的getMyClassId()
方法上的@ManyToOne
注释中定义。是不在(:id)
中也起作用。顺便说一句,在原生HQL中,所有引用的表都必须有一个别名,因此,从myClass t中选择t,其中…
和选择是可选的,因此,从myClass t中选择…
也起作用