Student 和teacher是多对一的关系,现在我用hql语句查询student:getSession().createQuery(“from student”);
发现sql是这样的:select * from student s,teacher t where s.teacher_id = t.fd_id
这样的话,如果student表中teacher_id为null则该条记录查不出来了。但是我想实现左连接的效果(select * from student s left join teacher on s.teacher_id = t.id),该如何配置呢?

解决方案 »

  1.   

    给个例子,看这样行不行from Cat as cat left join cat.kittens as kitten
      

  2.   

    直接在Student类中加封装teacher类(在Student类中添加teacher类属性),然后配置Student类的映射文件,给个例子你吧.
    两个类 Student和Teacher
    class Student{
    Teacher teacher;   //student封装teacher类的属性
    }
    在student映射文件配置
    <many-to-one name="teacher" class="com.Teacher" fetch="select" lazy="false">
                <column name="teacher_id" precision="22" scale="0" />
    </many-to-one>现在直接查找Student就直接绑定了对应id的Teacher表