实体类中一个属性和数据库列名不一致 (
class user{
private String password;
@Column(name = "securityCode")
public String getPassword() {)
}
我写了一个hql 比如:from user where password="123"(这个我知道) 但是from user where securityCode="123"
为什么也能正常查询。求解释,
------解决方案--------------------
@Column(name = "securityCode")//知道表字段为securityCode,securityCode为表的字段名,不写,默认和实体类一样。
public String getPassword() {)
}
from user where securityCode="123"//实体内没有securityCode字段啊。
------解决方案--------------------
securityCode是表字段,实体不存在。不明白就去看hql和sql的区别。
------解决方案--------------------
hibernate映射字段是根据@Column的name来对应的,所以你属性写什么都无所谓,@Column的name和数据库字段对应就可以了。HQL是根据对象名和属性名查询的,所以应该是from user where password="123",第二种按理应该是不对的,是不是缓存了检查一下。
------解决方案--------------------
弄不好把你的hql当sql处理了
------解决方案--------------------
看是否缓存
然后在看你是不是送的sql查询
------解决方案--------------------
有缓存吗
------解决方案--------------------
楼主类名书写不规范吧User
hql 必须跟类的属性一致,如果不是应该会报错的!