hibernate Criteria query 主外键关联

来源:互联网 发布:ubuntu是什么系统 编辑:程序博客网 时间:2024/05/22 07:57

hibernate error:

org.hibernate.QueryException: could not resolve property: licenseInfo.name of: com.db.User

数据结构:
User 和 LicenseInfo 关联;
class User{
private LicenseInfoPO licenseInfo;
}

hql:
Criteria query = HibernateUtil.getSession().createCriteria(User.class);
query.add(Restrictions.eq("licenseInfo.name", a));
query.add(Restrictions.eq("licenseInfo.id", a));

问题原因:
Restrictions.eq("Objecta.name", a)报错,而 Restrictions.eq("Objecta.id“,a)正确,前提是id为主键,name为非主键。也就是说Object后边点出的属性必须是主键,否则会报错。这可能是hibernate的漏洞,或者说他的功能还没完善。 

解决办法:
query.createAlias("licenseInfo", "license");
query.add(Restrictions.eq("license.name
", a));

 

原创粉丝点击