假设有两张桌子。表A和表B.
表A有{id,name,desc} 表B有{id,name,place}
我正在尝试显示名称,id列,其中a.id等于b.id。
Hibernate没有正确显示记录。
有人可以帮我解决问题吗?
谢谢, 卡锡尔
答案 0 :(得分:1)
你可以这样写这种类型的查询:
Query qry = session.createQuery("select a.name, a.id from A a, B b where a.id = b.id");
List l = qry.list();
Iterator it = l.iterator();
while(it.hasNext())
{
Object o[] = (Object o[])it.next();
System.out.println("name = "+o[0]+" id = "+o[0]);
}
在这种情况下,hibernate在内部将每行的多个列值存储到一个对象数组中,并将这些对象数组存储到List集合中。在迭代集合时,我们需要将结果类型转换为对象数组。
干杯和快乐的编码!
答案 1 :(得分:0)
您可能只需要为表格设置别名。
select a.name, a.id from A a join B b on a.id = b.id