java - hibernate : getting multiple table columns results from multiple tables

标签 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-2 列。

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

列出结果1 = query.list();//考虑选择并在不同表的结果中获取 6 列。

现在如何迭代这个结果1。

希望您能明白我的问题。

最佳答案

您可以使用查询结果集转换器:

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

创建一个“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/

相关文章:

java - 动态形成 SQL 查询

java - 如何处理 bean 需要服务器调用作为其初始化的一部分的情况

postgresql - 无法实例化 SpatialIntegrator

java - 在 JPA 中过滤引用实体数据

java - Spring AnnotationSessionFactoryBean NullPointerException

java - 对于这种情况,如何在 hibernate 中定义唯一约束?

java - 特定数量特殊字符的正则表达式

java - Spring 3+。通过占位符中的前缀解析属性

java - 如何在Hibernate中将多个实体FK保存到单个属性?

java - Hibernate:在非主键列上进行一对多映射