-2

代码片段:

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
...

现在你如何遍历列表得到正方形或矩形,或者你如何返回一个矩形列表?

更新了我的问题

我对 JPQL 查询有点陌生,我想要实现的是这样的 SQL 查询:

SELECT * FROM Rect INNER JOIN Square WHERE Rect.squareId = Square.id

并将结果插入列表

4

2 回答 2

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
    }
}
于 2013-04-30T04:01:29.327 回答
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)...)

于 2013-04-30T05:58:25.073 回答