<composite-id name="id" class="InfoViewDetaillistId">
<key-property
name="accountno"
column="ACCOUNTNO"
type="string"
/>
<key-property
name="rlsdepid"
column="RLSDEPID"
type="string"
/>
<key-property
name="sequenceno"
column="SEQUENCENO"
type="integer"
/>
<key-property
name="ondate"
column="ONDATE"
type="date"
/>
</composite-id>
在這個復合主鍵中包括了四個擁有業務邏輯的字段,分別是帳號,中心號,序號,日期。問題就在Hibernate對日期類型的映射上,如使用上面的配置方法的話Hibernate在啟動的時候就會報錯。具體的解決方法是把<key-property
name="ondate"
column="ONDATE"
type="date"
/>
替換成
<key-property name="ondate" type="date">
<column name="ONDATE" not-null="true" sql-type="java.sql.Types.DATE"/>
</key-property>
Bug具體的原因我會在一會的文章中解釋。