hibernate记录001

1、使用HQL进行条件关联(一对一)查询时,其形式类似SQL,示例如下:
条件:用户User 部门Dept (一个用户对应一个部门)
场景:通过部门(ID)查询用户

String hql = "from User u left join fetch u.dept d\n" + 
			"where d.id = :deptId\n" + 
			"order by u.createTime desc";

List<User> list = getSession().createQuery(hql).setParameter("deptId", id).list();

注意项就是:left join fetch u.dept d 通过User别名u关联Dept(别名d),并通过 d.id 进行条件查询
参考

2、hibernate使用find_in_set函数

String hql = "from User u where find_in_set(:id, u.channelIds) > 0";
List<User> list = getSession().createQuery(hql).setParameter("id", channelId).list();

注意项就是:> 0 不能缺少,本地SQL则不用

备注:find_in_set(val, field)是查询field字段内容中是否含有val值,field字段内容是以","分隔的数据,其他分隔符则不能用该函数查询。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值