代码段:
public List<Rect> display(){
TypedQuery<Rect> tp = em.createQuery("SELECT s,r FROM Rect r INNER JOIN r.cirlceId.squareCollection s", Rect.class);
List<Rect> list = tp.getResultList();
return list;
}
我的列表中的是这样的
[0] Object[]
[0] Square
[1] Rect
[1] Object[]
[0] Square
[1] Rect
...
现在如何遍历列表以获得square或Rect,或者如何返回Rect列表?
更新了我的问题
我对JPQL查询有点新,我想要实现的是这样的SQL查询:
SELECT * FROM Rect INNER JOIN Square WHERE Rect.squareId = Square.id
并将结果插入列表
答案 0 :(得分:2)
这只是一个如何做到这一点的例子。您可以根据需要进行修改!
for(Object obj : yourList){
if(obj instanceof Square){
// Add to Square List
}else if(obj instanceof Rect){
// Add to Rect List
}else{
// Do what you want
}
}
答案 1 :(得分:0)
您的JPQL查询有多个选择项。如果您只需Rect
,请将查询更改为SELECT r FROM Rect r INNER JOIN r.cirlceId.squareCollection s
(删除s
)。您可能需要指定SELECT DISTINCT r ...
。如果您的squareCollection
被轻微获取,您还可以从对象图中获取方块(即从结果列表中获取Rect
r并访问r.circleId.squareCollection.get(0)... )