论坛首页 Java企业应用论坛

难道是hibernate装聪明?

浏览 1487 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-09-20  

今天开发中遇到一个奇怪的hibernate错误
我的数据库中一个表中有个字段名叫id,但是它并不是主键
用hibernate映射后为

XML语言 :
1 <id name= "apprId" type= "java.lang.Long" >
2     <column name= "APPR_ID" precision= "11" scale= "0" />
3     <generator class= "assigned" />
4 </id>
5 <property name= "Id" type= "java.lang.Long" >
6     <column name= "ID" precision= "11" scale= "0" />
7 </property>

而我当执行这样的hibernate的HQL的时候

SQL语言 :
1 from RcUApprInfo as model where model.Id = ?


hibernate解析成sql语句竟然是

SQL语言 :
1 select ...... from rc_u_appr_info where as model where model.APPR_ID = ?

跟踪了好几遍,都是这样

在确定自己的代码没问题后,想到可能是hibernate理解错了
于是将Id改成了别的名
再试,竟然没问题了
难道hibernate将凡是叫Id的都认为成主键??不解 不解

论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics