我正在使用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列。
现在如何迭代这个结果。
我希望你能得到我的问题。
答案 0 :(得分:1)
您可以使用Result Set Transformer
的{{1}}:
假设您有来自不同表格的4列,例如Query
,tab1col
,tab2col
,tab3col
。
创建一个' 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中的游标)。