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));
query.add(Restrictions.eq("license.name", a));