QBC查询

来源:互联网 发布:c语言中flag 编辑:程序博客网 时间:2024/05/16 03:09

学习记录之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));

问题就解决了,记录一下