在我的 Oracle 数据库中,我有两个示例表:
- 带有
A
列的表格id
,a1
,a2
,a3
- 带有
B
列的表格id
,b1
,b2
,b3
我有从这两个表中获取信息的视图:
CREATE VIEW Foo ("A.id", "A.a1", "A.a2", "A.a3", "B.id", "B.b1", "B.b2", "B.b3") AS
SELECT aaa.*, bbb.*
FROM A aaa, B bbb
WHERE
...some conditions...;
在我的 Java 应用程序中,我想Foo
通过 Hibernate 的视图获取信息结果。所以我必须使用createSQLQuery()
方法:
public List<SomeObject> findSomeObjects() {
Query q = sessionFactory.getCurrentSession()
.createSQLQuery("select f.* from Foo f")
.addEntity(A.class).addEntity(B.class);
List l = q.list();
//here I want to get object of A class and B class from return l
//and prepare return list of SomeObject
}
SomeObject
是 A 类和 B 类的总和。
我从返回列表和构造列表中获取 A 类和 B 类的对象有问题SomeObject
。我怎样才能正确地做到这一点?
编辑
- 表
A
还有一列,这是表fk_c
的外键C
- 表
B
还有一列,这是表的外fk_d
键D