2008年9月5日星期五

难道是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的都认为成主键??不解 不解

没有评论:

发表评论