简体   繁体   English

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

[英]Hibernate : getting multiple table columns results from multiple tables

I am using hibernate 4 and Spring 3. 我正在使用休眠4和春季3。

I have 5 tables and each table is mapped with 1 entity class.Now if I have to select columns from 1 table than i will do below : 我有5个表,每个表都映射有1个实体类。现在,如果我必须从1个表中选择列,我将在下面进行操作:

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

This value in this result will be of type EmployeeEntity. 此结果中的该值将为EmployeeEntity类型。

Or I can use Criteria as well. 或者,我也可以使用条件。

Now my requirnment is that I have to get the result from all 5 tables.1-2 columns from each table. 现在我的要求是我必须从所有5个表中获取结果。每个表的1-2列。

Earlier it was one 1 table so i was getting one entity , now I am getting results from 5 tables so how to map it in entity. 以前是1个表,所以我得到一个实体,现在我从5个表中得到结果,因此如何在实体中映射它。

List results1 = query.list(); 列出结果1 = query.list(); // considering select and getting 6 columns in results with diffenent tables. //考虑选择并获得不同表的结果中的6列。

Now how to iterate this result1. 现在如何迭代此结果1。

I hope you got my question. 希望你能回答我的问题。

You can use Result Set Transformer of Query : 您可以使用Query Result Set Transformer

Say you have 4 columns from different tables like tab1col , tab2col , tab3col , tab4col . 假设您有来自不同表的4列,例如tab1coltab2coltab3coltab4col

Create a 'POJO' as follows 如下创建一个“ POJO”

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

Following way you can transform you result set: 您可以按照以下方式转换结果集:

List<MyClass> myClassList=query.setResultTransformer(Transformers.aliasToBean(MyClass.class)).list();

Note : query should contain a result set(something like cursor in oracle). Note :查询应包含一个结果集(类似于oracle中的游标)。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM