如何在唯一的映射或非对象JPA中返回多个结果

时间:2015-05-07 20:36:15

标签: java hibernate jpa sqlresultsetmapping

Img problem                            org.hibernate作为                 休眠核心                 4.3.8.Final                                           org.hibernate作为                 冬眠-的EntityManager                 4.3.8.Final              我的pom.xml

我的问题是:如何进行这样的查询...

 SELECT
    TABLE_D.*,
    TABLE_A.NAME_A

FROM
    TABLE_D
INNER JOIN
    TABLE_E
        ON TABLE_D.ID_TAB_E  = TABLE_D.ID_TAB_D
LEFT JOIN
    TABLE_C 
        ON TABLE_C.ID_TAB_C  = TABLE_D.ID_TAB_D
INNER JOIN
    TABLE_B
        ON TABLE_B.ID_TAB_B  = TABLE_C.ID_TAB_C
INNER JOIN
    TABLE_A
        ON TABLE_A.ID_TAB_A  = TABLE_B.ID_TAB_B
WHERE
    TABLE_A.NAME_A = "XXXX";

并将选中的值TABLE_D和TABLE_A返回到一个唯一的对象列表中(例如:我创建的对象以获取所有这些字段)(我可以在JPA中创建1个过滤器,无论......)? Plz帮助。

1 个答案:

答案 0 :(得分:0)

如果你需要在HQL中返回所选列的列表,你可以编写你的hql查询并返回一个Object of Array数组,即:

List<Object[]> result = session.createQuery("select a.field1, b.field2 from EntityA a join a.entityB b").list();

然后你可以根据它们的类型(即字符串)迭代并获取值:

for (Object[] arr : result) {
    String col1 = (String)arr[0];
    String col2 = (String)arr[1];
}