0

假设有两个表。表 A 和表 B。

表 A 有 {id, name, desc} 表 B 有 {id, name, place}

我正在尝试显示 a.id 等于 b.id 的名称、id 列。

Hibernate 没有正确显示记录。

有人可以帮我解决问题吗?

谢谢, 凯瑟尔

4

2 回答 2

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 集合中。在迭代集合时,我们需要将结果类型转换为对象数组。

干杯和快乐编码!

于 2012-12-06T15:07:30.757 回答
0

你可能只需要给你的表起别名。

select a.name, a.id from A a join B b on a.id = b.id
于 2012-12-06T15:07:43.850 回答