今天開發(fā)中遇到一個(gè)奇怪的hibernate錯(cuò)誤
我的數(shù)據(jù)庫中一個(gè)表中有個(gè)字段名叫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>
而我當(dāng)執(zhí)行這樣的hibernate的HQL的時(shí)候
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理解錯(cuò)了
于是將Id改成了別的名
再試,竟然沒問題了
難道hibernate將凡是叫Id的都認(rèn)為成主鍵??不解 不解