zoukankan      html  css  js  c++  java
  • hql join

    文章一:

    1.用hql语句

    `
    String hql="select student.id, student.name ,class.name from student映射实体类名 as student , class映射实体类名 as class where class.id = student.classid ";

    `

    2.用本地SQL语句

    `
    String sql="select student.id, student.name, class.name from student join class on class.id = student.classid ";

    SQLQuery query=HibernateSessionFactory.getSession().createSQLQuery(sql);
    `

    也可以进行查询

    返回类型为数组。

    文章二:

               Hibernate 是JDBC的轻量级封装,一款杰出的ORM框架。通过它,可以建立数据表与表对象间的联系。
              Hibernate的查询可通过HQL 和Criteira实现。本文仅展示用HQL实现多表查询,并针对返回的结果集进行对象封装。
            
              如果我们在Hibernate中需要查询多个表的不同字段,那么如何来获取Hibernate多表查询的结果呢?有两种方式:
    

    1、 利用Hibernate重写的List,从Obeject[ ]中取各个字段分别转化成对应类型,如下:

    Java代码:
    `
    Query q = session.createQuery(" select members, classInfo.className " +
    " from Members members, ClassInfo classInfo " +
    " where members.level = classInfo.classCode ");

    List result = q.list();

    Iterator it = result.iterator();

    while (it.hasNext()) {

    Object[] tuple = (Object[]) it.next();

    Members members = (Members) tuple[ 0 ];

    String className = (String) tuple[ 1 ];

    }
    `
    这是获取Hibernate多表查询的结果的最常用的方式,利用Hibernate为了实现懒加载重写所有Collection接口实现。

    2、构造自己的复合类型,如下:

    Java代码:
    `
    Query q = session.createQuery

    (" select new ${path}.NewMembers(members, classInfo.className) " +

    " from Members members, ClassInfo classInfo " +        
    
    " where members.level = classInfo.classCode ");    
    

    Query q = session.createQuery

    (" select new NewMembers(members, classInfo.className)

    " + " from Members members, ClassInfo classInfo " + "

    where members.level = classInfo.classCode ");

    `
    当然我们需要有一个NewMembers类和相应的构造方式。
    需要特别指出的是,定义的复核类型NewMembers务必要实现java.io.Serializable接口,定义相应的构造方法:一个默认不带参数的,一个根据需要带参数的(通常是全参,呵呵,因为本身成员变量就是量身定制);此外,在使用中,发现必须指定自定义类型的完整类名${path}.NewMembers,${path}为NewMembers的包名。

    文章三

    学习好文:Hibernate中的HQL的基本常用小例子,单表查询与多表查询
    http://blog.csdn.net/starjuly/article/details/52319921

  • 相关阅读:
    ListView之setEmptyView的问题
    AdapterView的相关知识。
    分享一个程序猿的真实的爱情故事
    C#中的explicit和implicit了解一下吧
    通俗易懂,什么是.NET Core以及.NET Core能做什么
    目前下载VS2017你可能会遇到这个坑
    .NET Core中使用Dapper操作Oracle存储过程最佳实践
    分享一个.NET平台开源免费跨平台的大数据分析框架.NET for Apache Spark
    从ASP.NET Core2.2到3.0你可能会遇到这些问题
    What?VS2019创建新项目居然没有.NET Core3.0的模板?Bug?
  • 原文地址:https://www.cnblogs.com/comeluder/p/7809736.html
Copyright © 2011-2022 走看看