Hibernate:从多个表中获取多个表列

时间:2014-08-29 08:20:58

标签: java hibernate hibernate-mapping

我正在使用hibernate 4和Spring 3.

我有5个表,每个表都映射了1个实体类。现在如果我必须从1个表中选择列而不是我将在下面执行:

String hql = "from Employee E";
Query query = session.createQuery(hql);
List results = query.list();

此结果中的此值将为EmployeeEntity类型。

或者我也可以使用Criteria。

现在我的要求是我必须从每张桌子的所有5个表格中获得结果。

之前它是一个1表,所以我得到一个实体,现在我从5个表中得到结果,所以如何在实体中映射它。

列出results1 = query.list(); //考虑使用不同的表格在结果中选择和获取6列。

现在如何迭代这个结果。

我希望你能得到我的问题。

1 个答案:

答案 0 :(得分:1)

您可以使用Result Set Transformer的{​​{1}}:

假设您有来自不同表格的4列,例如Querytab1coltab2coltab3col

创建一个' POJO'如下

tab4col

您可以按照以下方式转换结果集:

class MyClass
{
 private Integer tablcol;
 private Integer tab2col;
 private Integer tab3col;
 private Integer tab4col;
  //  getter and setters
}

List<MyClass> myClassList=query.setResultTransformer(Transformers.aliasToBean(MyClass.class)).list(); :查询应包含结果集(类似于oracle中的游标)。