其实我想问的是,hibernate如果两张表没有建立主键和外键关系,也没有配置一对多多对一,怎样用hql语句实现left join 或right join ??注意要用hql语句,和createQury函数。难道2张表要有主外键关系并且要配置一对多多对一才行用left right么??
java date yyyy-mm-ddjavadateyyyy-mm-ddstring

解决方案 »

  1.   

    表是否配置主外键关系,跟是否可以使用外连接或内连接无关。但是表如果没有配置主外键关系(其实真正有意义的是被关联字段有无索引),做表连接性能会很差。
    如果用HQL的话,注意要在配置文件中声明好many-too-one或one-too-many之类的。
      

  2.   

    需要配置如果不配置的话用sql吧
      

  3.   

    inner join(内连接)
    left outer join(左外连接)
    right outer join(右外连接)
    full join (全连接,并不常用)
    注意:语句inner join, left outer join 以及 right outer join可以简写
    给一个hql的join例句:
     from Cat as cat join cat.mate as mate left join cat.kittens as kitten 另:通过HQL的with关键字,你可以提供额外的join条件:from Cat as cat left join cat.kittens as kitten with kitten.bodyWeight > 10.0
      

  4.   

    http://download.csdn.net/detail/kofandlizi/6475545
      

  5.   

    就是说要用left join 的话,就要配置一对多多对一噜??我试试。。
      

  6.   

    是啊。。难道用left join就要配这个?
    骗大家进来的。。问题是那个字段确实跟另外一张表算不上主键和外键关系,只是要用来关联而已。比如性别0表示女,1表示男,类似的数据都存在一张表里。。
    这个要配置一对多多对一的。。