hibernate中的连接查询

hibernate可以用自带的find,save,saveorupdate,delete之类进行操作,也可以写hql语句。

一些情况需要hql写连接查询,hql与sql是不同的

如果只是简单的连接,内连接,直接写 from table1 t1,table2 t2 where t1.id = t2.id 就行了,这还是支持的

但是遇到什么左连接右连接就不行了,hql不支持join,网上有人说直接写t1 left join r2不用写on,配置好一对多之类的关系的话hibernate会自动连接,我遇到的项目是spring注解实体类属性,没有映射文件,所以我不能这样

最后的解决方式,在hql查询时要使用query,平常的hql就是

query = getSessions().createQuery(sql);
return (List<Object[]>) query.list();


这里要用

query = getSessions().createSQLQuery(sql);

return ...

而上面也不用hql了,写的其实是sql原生语句,列名表明与数据库相同


另外,有的连接查询想获得的是其中一个实体内容,那么可在createSQLQuery后加addEntry(类.class)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值