我正在使用 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-2 列。
之前它是一张 1 表,所以我得到一个实体,现在我从 5 个表获取结果,所以如何将其映射到实体中。
列出结果1 = query.list();//考虑选择并在不同表的结果中获取 6 列。
现在如何迭代这个结果1。
希望您能明白我的问题。
最佳答案
您可以使用查询
的结果集转换器
:
假设您有来自不同表的 4 列,例如 tab1col
、tab2col
、tab3col
、tab4col
。
创建一个“POJO”,如下所示
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中的光标)。
关于java - hibernate : getting multiple table columns results from multiple tables,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25564342/