0

图片问题 org.hibernate hibernate-core 4.3.8.Final org.hibernate 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";

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

4

1 回答 1

1

如果您需要在 HQL 中返回选定列的列表,您只需编写 hql 查询并返回对象数组列表,即:

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];
}
于 2015-05-07T21:06:11.577 回答