我应该如何使用hibernate加入4个表?

时间:2015-07-15 18:52:57

标签: java hibernate

我是hibernate的新手但在某种程度上有知识。

我有4个表customerCustomer_headerShopCustomer_template。我想使用Hibernate执行以下JOIN查询...

SELECT C.c_id, CH.c_des, S.s_num, CT.qty 
FROM CUSTOMER C, CUST_HEADER CH, SHOP S, CUST_TEMPLATE CT 
WHERE C.c_id = S.c_id AND C.c_id=CH.c_id AND CH.c_id=S.c_id AND CH.c_id=CT.c_id;

我已经阅读了一些参考资料。一些使用criteria API,一些使用HQL查询。我没有得到如何为4张桌子做这件事......

请建议我怎么做?

先谢谢..

1 个答案:

答案 0 :(得分:0)

正如您所说,您可以使用CriteriaHQL来执行此操作,以下是使用HQL执行此操作的方法:

String queryString="C.c_id, CH.c_des, S.s_num, CT.qty FROM CUSTOMER C, CUST_HEADER CH, SHOP S, CUST_TEMPLATE CT WHERE C.c_id = S.c_id AND C.c_id=CH.c_id AND CH.c_id=S.c_id AND CH.c_id=CT.c_id";
Query query=session.createQuery(queryString);
List<Object[]> result=query.list();

您将得到一个Object[]数组列表,其中每个数组的第一个元素是C.c_id,第二个是CH.c_des,第三个是{{} 1}},最后一个是S.s_num