类A.java
public class A{
  private int id;//主键
  private String sNo;//外键;
  private String name;
  ..........省略getter,setter
}
public class B{
  private String sNo;//主键
  privat String sex;
  ..........省略getter,setter
}SQL:select * from A a left join B b on a.sNo=b.sNO怎么用HQL怎么写?并且配置文件怎么配呀!大家帮我看看!谢谢了!

解决方案 »

  1.   

    HQL是对内存中的对象进行操作,左连接什么的是对数据库中的表进行操作,不是一码事select A.id , A.name , B.sex FROM A , B where A.sNo = B.sNo;配置文件就不用配置了
      

  2.   

    楼上那个是交叉连接,与左连接实现的效果是不一样的Hibernate 中要使用 LEFT JOIN 必须在 ORM 实体映射中配置关联,否则你只能使用原生 SQL 进行查询。
      

  3.   

    配置文件一般配置的是属性信息和映射关系,你要实现的这个功能,可以用hql="select ****(你要查找的属性,或者是对象也可以比如,A,B) FROM A , B where A.sNo = B.sNo"
      

  4.   

    迫切左外连接检索好像是配置lazy=false,outer-join=true
      

  5.   

    public class A{
      private int id;//主键 
      private B b;  
      private String name; 
      ....省略get,set
    }
    public class B{ 
      private String sNo;//主键 
      privat String sex; 
      ..........省略getter,setter 

    一下是部分映射
    <many-to-one name="b" 
        class="B"
        fetch="select" 
        insert="false" 
        update="false">
        <column name="sNo" />
    </many-to-one>看看我的多对一的配置正确的没有呀
    HQL:form A a left join a.b b where 1=1查询包空对象异常!大哥!大姐!怎么办?