遍历对象列表

时间:2013-04-30 03:33:58

标签: java jpa

代码段:

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

并将结果插入列表

2 个答案:

答案 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)... )