有三张表,公司,员工,银行卡,一个公司有多个员工,每个员工有多张银行卡,反应到映射文件,员工映射文件<many-to-one class="公司"><column name="公司id" /></many-to-one> 银行卡映射文件<many-to-one class="员工"><column name="员工id" /></many-to-one> 现在我要取三张表的数据,比如说,我要取公司名称,员工名称,银行卡银行名称,这条hql语句怎么写 

解决方案 »

  1.   

    用Criteria 接口中的方法做类对象查询, 从多的那一方查询入手,因为一的那一方不做查询维护。
    所以如果是多个员工对应一个公司,查那个公司,就先查那个员工,这样就可以顺带查处公司。
      

  2.   

    Company Staff BankCardselect c.name,s.name,b.name from BankCard b join b.stadff s join s.company c  where ......
      

  3.   

    select 公司名称,员工名称,银行卡银行名称 from 公司 a,员工 b,银行卡  c where a.id=b.id and b.id=c.id