当前位置: 代码迷 >> J2EE >> hql查询有关问题:都来看看 这个如何解释
  详细解决方案

hql查询有关问题:都来看看 这个如何解释

热度:28   发布时间:2016-04-17 23:44:24.0
hql查询问题:都来看看 这个怎么解释。
实体类中一个属性和数据库列名不一致 (
class user{
private String password;
@Column(name = "securityCode")
public String getPassword() {)
}

我写了一个hql    比如:from user where password="123"(这个我知道) 但是from user where  securityCode="123"
为什么也能正常查询。求解释, 
------解决方案--------------------
本帖最后由 fangmingshijie 于 2014-08-19 17:54:09 编辑
@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查询
------解决方案--------------------
引用:
Quote: 引用:

看是否缓存
然后在看你是不是送的sql查询

我看了看执行的是 hql 语句   form com.xx.moxxx.user where  securityCode=123 

有缓存吗
------解决方案--------------------
楼主类名书写不规范吧User  
 hql 必须跟类的属性一致,如果不是应该会报错的!
  相关解决方案