`

hibernate 多表查询,返回新定义的对象

阅读更多
SessionFactory  sessionFactory=Configuration.buildSessionFactory("hibernate.cfg.xml");
Session  session=sessionFactory.currentSession();

String  hql="select  new  A(a.ab001,a.ab002,a.ab006,b.aa002  as  ab003)  from  db_xtwh_bmb  as  a  left  outer  join  db_xtwh_ryb  as  b  on    a.ab003=b.aa001  where  a.ab004= "0 "";

Query  query=session.createQuery(hql);
List <A >  list=query.list();
return  list;


hibernate 左外连接的写法:
select mother, offspr, mate.name from DomesticCat as mother inner join mother.mate as mate left outer join mother.kittens as offspr 这是正确的左连接 语句 ,但这个是在表之间配置了关系后才能使用的我想问的就是,在没配置表与表之间的关系的情况下,怎么使用HQL语句 左连接 查询?

跟sql的左外连接不一样

在hibernate中使用左外链接要先建立关联
否则只能通过一些小技巧来完成

参考:http://mayabin.iteye.com/blog/123886


这里还有另外一种左外链接的写法:
select cu.customerid,cu.enpname,cu.phone,cu.mobile,cu.EMail,sd.dname
      from Customerinfomation as cu, Sysdata as sd Where sd.did(+)=cu.validflag

用(+)代替left   join 

http://77857.blog.51cto.com/67857/153519

hibernate 多表查询
分享到:
评论

相关推荐

    Hibernate连表查询 Hibernate连表查询

    如果查询结果包含多个字段,并且希望将这些字段封装成一个对象,则可以使用Hibernate的投影列表功能,或者手动创建一个新的类来存储查询结果。 ### 总结 本文主要介绍了Hibernate中的连表查询方法及其在实际开发中...

    hibernate将本地SQL查询结果封装成对象

    要将本地SQL查询的结果封装成对象,我们首先需要定义一个映射文件(.hbm.xml),在这个文件中,我们需要指定查询返回的对象类型以及字段与数据库列的对应关系。例如: ```xml &lt;hibernate-mapping&gt; ...

    hibernate多表查询详解

    本文将深入探讨Hibernate中实现多表查询的各种方法,包括Object[]形式、对象方式以及集合list形式的查询。 ### 1. Object[]形式的查询 Object[]形式的查询适用于简单的联接查询,返回的结果是一个对象数组,每个...

    Hibernate_query查询数据表中的一个字段.

    本篇将详细讲解如何使用Hibernate进行查询,特别是针对数据表中的一个特定字段。 一、Hibernate简介 Hibernate是Java领域的一个开源ORM框架,它简化了数据库操作,通过映射Java类到数据库表,可以将数据库操作转化...

    hibernate将本地SQL查询结果封装成对象(最终).zip

    在使用Hibernate之前,需要进行一些基本的配置,包括创建`hibernate.cfg.xml`配置文件,定义数据源、数据库连接信息,以及实体类和数据库表之间的映射关系,通常是在`hbm.xml`或使用注解进行映射。 3. SQL查询与...

    Struts和Hibernate分页及查询

    2. **定义实体类**:根据数据库中的表结构,创建对应的Java实体类,并使用Hibernate的注解或XML映射文件来描述它们与数据库表的关系。 3. **编写DAO层**:定义数据访问对象(DAO)接口及其实现,这些方法通常包括增...

    hibernate实现动态SQL查询

    例如,我们可以为一个实体类定义多个HQL或SQL查询,根据实际需要选择执行哪一个。 五、FREEMARKER解析 FREEMARKER是一款强大的模板引擎,常用于Web应用中的视图渲染。在Hibernate中,我们可以利用FREEMARKER生成...

    hibernate子查询

    这意味着你需要为这个临时的子查询结果创建一个新的Java类,然后在Hibernate映射文件中定义这个类,使用`subselect`属性指定子查询的SQL语句。这样,Hibernate就会根据这个子查询来获取和管理数据,而不是直接操作...

    hibernate自定义查询

    Hibernate支持使用`createSQLQuery`方法创建SQL查询,并返回结果集。例如: ```java Session session = sessionFactory.openSession(); SQLQuery sqlQuery = session.createSQLQuery("SELECT * FROM USER WHERE ...

    hibernate实现动态表查询的多种解决方案

    3. **Session的开放性**:Hibernate的`Session`对象是高度可定制的,可以通过`SessionFactory`的配置参数来改变其行为,甚至可以在运行时更改某些配置,以实现动态表查询的功能。 #### 三、具体实现方案 ##### ...

    hibernate分页查询功能

    UserDao接口定义了分页查询的方法,通过`getUser(int offset, int length)`接收起始位置(offset)和每页显示的数量(length),返回一个User对象的ArrayList。此外还有一个`getAllRowCount()`方法用于获取所有记录...

    Hibernate_实体类_注解_说明

    Hibernate作为Java领域中流行的ORM(对象关系映射)框架,提供了丰富的注解来简化实体类与数据库表之间的映射。本文将深入解析一系列关键注解,帮助理解Hibernate如何实现这一过程。 #### 1. `@Entity`与`@Table` ...

    HQL是hibernate自己的一套查询

    在上面的示例中,我们首先通过`HibernateUtil.getSession()`方法获取到一个`Session`实例,然后定义了一个HQL查询语句,该语句用于从`Admin`表中查询`aname`为`name`的所有记录。最后通过`createQuery`方法创建查询...

    hibernate+struts实现数据库查询的例子

    通过配置文件和注解,Hibernate可以自动将Java对象映射到数据库表,实现对象的保存、更新、删除和查询。在这个例子中,Hibernate可能会被用来定义实体类,配置映射文件,并编写SQL查询语句,以便从数据库中检索数据...

    hibernate关联查询

    本篇文章将主要探讨`hibernate`的一对多关联查询。 ### 1. 一对多关联 在关系数据库中,一对多关系是指一个表中的记录可以与另一个表中的多个记录相对应。在Hibernate中,这可以通过在实体类中定义`@OneToMany`...

    Hibernate-HQL-查询-Query资料

    - HQL是Hibernate提供的面向对象的查询语言,与SQL类似,但更加面向对象,将数据库表映射为Java类,表中的行映射为类的对象。 - HQL与JPA的JPQL相似,都是为了提高代码的可读性和可维护性,避免硬编码SQL。 2. **...

    Hibernate 函数 ,子查询 和原生SQL查询

    子查询是嵌套在另一个查询中的查询,它可以作为查询的一部分返回单个值、多个值或整个结果集。在Hibernate中,子查询可用于以下场景: 1. **IN/NOT IN操作符**:`from Entity e where e.id in (select id from ...

    hibernate公共查询

    - `listAll()`: 查询所有记录,使用`Session`的`createCriteria()`或`createQuery()`方法构造HQL(Hibernate Query Language)或SQL,然后调用`list()`执行并返回结果集。 - `findById(id)`: 根据ID查询单个对象...

    基于spring+hibernate的组合查询+分页组件

    Hibernate则是一个流行的ORM框架,它允许开发者用面向对象的方式处理数据库操作,通过映射Java类到数据库表,减少了SQL的直接编写。Hibernate支持HQL(Hibernate Query Language),这是一种面向对象的查询语言,...

    HQL多表查询

    2. **编写HQL查询语句**:使用`join`或`left join`关键字进行多表查询,指定关联条件和返回字段。 3. **执行查询**:通过Hibernate Session的`createQuery`方法执行HQL查询,获取结果集。 通过以上步骤,开发人员...

Global site tag (gtag.js) - Google Analytics