【发布时间】:2013-04-30 03:33:58
【问题描述】:
代码sn-p:
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
并将结果插入列表
【问题讨论】:
-
您正在返回矩形列表。那么问题是什么?
-
我认为这意味着
Square是Rect,他想解析出Rects,但我不明白为什么Rect是Object[]。需要更多信息。 -
这就是问题所在,在调用 create 查询后,
tp.getResultList()返回了上面树所述的对象列表的值。从对象列表中,我想获取所有 Squares 或所有 Rects -
@galao:那么'TypedQuery
'声明有什么用。不应该只返回 Rect.class 的对象吗? instanceof 会有所帮助,但我想你的问题是列表中的对象不是 Rect.class -
我试图检索 Rect 结果,但失败了。即使只有一个列表,它也会返回一个包含 Rect 和 Square 的对象列表。