hibernate Criteria query 主外键关联

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));

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值