糊言亂語

          志未半斤, 才無八兩. 有苦有樂, 糊涂過活。
          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具體的原因我會在一會的文章中解釋。

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


          網站導航:
           
          主站蜘蛛池模板: 新丰县| 樟树市| 平利县| 当雄县| 调兵山市| 海盐县| 南通市| 揭西县| 陆河县| 安福县| 苍梧县| 鄄城县| 鄂托克前旗| 临颍县| 三台县| 大安市| 九龙坡区| 邵阳市| 尚志市| 彭阳县| 郎溪县| 定西市| 荆门市| 富蕴县| 库伦旗| 上饶县| 离岛区| 阜平县| 庆安县| 永新县| 涟源市| 西宁市| 朝阳县| 和平区| 临漳县| 三穗县| 龙川县| 张家港市| 清水河县| 白朗县| 长葛市|