假设有两个表。表 A 和表 B。
表 A 有 {id, name, desc} 表 B 有 {id, name, place}
我正在尝试显示 a.id 等于 b.id 的名称、id 列。
Hibernate 没有正确显示记录。
有人可以帮我解决问题吗?
谢谢, 凯瑟尔
假设有两个表。表 A 和表 B。
表 A 有 {id, name, desc} 表 B 有 {id, name, place}
我正在尝试显示 a.id 等于 b.id 的名称、id 列。
Hibernate 没有正确显示记录。
有人可以帮我解决问题吗?
谢谢, 凯瑟尔
您可以像这样编写这种类型的查询:
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 集合中。在迭代集合时,我们需要将结果类型转换为对象数组。
干杯和快乐编码!
你可能只需要给你的表起别名。
select a.name, a.id from A a join B b on a.id = b.id