本文前三条内容转自----http://blog.csdn.net/jsjxieyang/article/details/5863238
原因1:程序相关set,get方法没写对,或者是映射文件 出错了。请仔细检查。
原因2:程序变量名包涵 下划线"_", hibernate可能无法解析,从而报错。
原因3:也是我遇到的问题。在多条件查询中,
Restrictions.eq("Objecta.name", a)报错,而 Restrictions.eq("Objecta.id“,a)正确,前提是id为主键,name为非主键。也就是说Object后边点出的属性必须是主键,否则会报错。这可能是hibernate的漏洞,或者说他的功能还没完善。我们可以换成hql语句实现多条件查询。
原因4:当用注解映射属性时,@Column(name="username"),此处的name的属性值,一定要和你实体类中定义的属性一样。
如@Column(name="username", nullable = false, length = 50, unique = true)
public String getUsername() {
return username;
}
如果实体类中的属性不是username,假如是uName,那么是不会成功将uName属性通过@Column(name="username")来映射数据表里的username字段的,我之前遇到过,还不知道是什么原因。知道情况的请告之,谢谢!