难道是hibernate装聪明?

难道是hibernate装聪明?

今天开发中遇到一个奇怪的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的都认为成主键??不解 不解

你可能感兴趣的:(难道是hibernate装聪明?)