1. 程式人生 > >Hibernate反向工程出現BigDecimal型別解決辦法

Hibernate反向工程出現BigDecimal型別解決辦法

寫在開頭:

——IDE:MyEclipse

——資料庫:Oracle

——框架:Hibernate3.3

要做什麼?

指定表字段對映型別,

生成實體類的時候,把Oracle資料庫NUMBER型別對映為Integer型別

(預設對映會根據NUMBER的長度對映為不同的java型別,比如NUMBER(22)-->BigDecimal型別,之後在操作實體類時經常需要強制轉換型別,很麻煩)

NUMBER長度(暫不考慮浮點數)與Java型別對應關係:

NUMBER長度 Java型別
           1        Boolean
           2        Byte
           3-4
       Short
           5-9        Integer
           10-18        Long
           19+        BigDecimal

怎麼做?

1、反向工程過程中有一個步驟可以自定義對映型別,就是“Customized Type Mappings”


2、僅在這裡新增一條自定義型別對映,把資料庫的NUMBER型別對映為Java的Integer型別

點選右方“Add”,修改對應值

!!!是NUMERIC,不是NUMBER!!!

!!!是integer,不是Integer!!!

!!!Scale設定為0!!!


3、生成的實體類就不會出現BigDecimal、

Byte、Short型別了

注:為什麼要設定“Scale”為“0”?

我們知道,在Oracle資料庫中,NUMBER不僅可以表示整數,還可以表示小數(eg:NUMBER(8,2)表示範圍是8位,精度為2,即存6位整數,2位小數),如果沒有設定“Scale”為“0”,所有NUMBER型別欄位(包括表示浮點數的欄位)全部變成了Integer型別,這樣顯然是不對的,因此,“Scale”設定為“0”

本章終。

如果您發現錯誤,請及時提醒我更正,謝謝。