学习记录之QBC查询
问题需求:
有一张A表userInfo 存放的是用户信息
A表中有用户昵称 name
有一张B表DynamicsComment 存放的是动态的评论
B表有一个关联的属性 (userInfo)commentId
遇到问题:
如何使用QBC多表查询,从B表的关联属性中查询到A表的name属性呢
如果使用普通的查询方法如下:
c.add(Restrictions.like("userInfo.Name", si.getUserInfo().getName(),
MatchMode.ANYWHERE));
控制台会报错,因为查询的是commentDynamics表
Session session = sessionFactory.getCurrentSession();
Criteria c = session.createCriteria(commentDynamics.class);
解决方案:
需要多表查询时,需要给对象起别名
c.createAlias("userInfo", "u");
c.add(Restrictions.like( "u.name" ,si.getUserInfo().getName(),MatchMode.ANYWHERE));
问题就解决了,记录一下