糊言亂語

          志未半斤, 才無八兩. 有苦有樂, 糊涂過活。
          posts - 25, comments - 7, trackbacks - 0, articles - 42
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          Hibernate復合主鍵BUG

          Posted on 2007-10-09 12:57 Stanley Sun 閱讀(310) 評論(0)  編輯  收藏
          在一般的項目中,數據庫主鍵不會擁有業務邏輯。但是在一些數據庫設計不是很嚴格的項目中還是會把擁護業務邏輯的字段作為主鍵使用,而且可能回事復合主鍵。 現在在一個項目我就遇到這情況。這個項目的數據訪問框架使用的Hibernate框架,在對復合主鍵的映射是我遇到了一個Hibernate Bug。我使用的數據庫是Oracle 8i。Hibernate Mapping如下:

          <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具體的原因我會在一會的文章中解釋。

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 曲靖市| 资溪县| 柳州市| 仪陇县| 东平县| 宁南县| 武邑县| 三河市| 库伦旗| 和静县| 河东区| 历史| 石渠县| 马龙县| 邳州市| 邢台县| 思茅市| 高淳县| 彭水| 泉州市| 海口市| 连山| 深圳市| 芜湖市| 县级市| 佛学| 枞阳县| 剑川县| 富川| 闻喜县| 绥芬河市| 宁陕县| 城固县| 乌恰县| 南陵县| 根河市| 赞皇县| 清镇市| 彭阳县| 随州市| 桐柏县|