3

Long ではなく BigDecimal を持つエンティティ クラス

私のエンティティ クラスは Hibernate ツールで生成されます。残念ながら、一部の「長い」値は「BigDecimal」の数値 (列: AGE、BIRTHDATE) になりますが、すべて (列: ID) ではありません!

なぜこれが起こっているのですか?どうすれば修正できますか?

私の Oracle データベースのテーブル: ユーザー

    Column    -   Type   - Decimal Digits - Column Sizes
    ----------+----------+----------------+-------------
    ID        - NUMBER   -     0          - 10
    AGE       - NUMBER   -     0          - 38
    BIRTHDATE - NUMBER   -     0          - 38
    FIRSTNAME - VARCHAR2 -   <null>       - 32

Hibernate Tools を使用してエンティティ クラス (POJO) を生成する

@Id
@Column(name = "ID", unique = true, nullable = false, precision = 10, scale = 0)
private long id;

@Column(name = "AGE", precision = 38, scale = 0)
private BigDecimal age;

@Column(name = "BIRTHDATE", precision = 38, scale = 0)
private BigDecimal birthdate;

@Column(name = "FIRSTNAME", length = 32)
private String firstname;

ありがとう!

4

1 に答える 1

4

タイプ マッピングをカスタマイズするように Hibernate ツールを設定できます。reveng.xml ですべてのマッピングを指定します (スクリーンショットを参照)。JDBC タイプを任意の Hibernate タイプに変換し、ジェネレーターを再度実行します。

reveng.xml マッピング構成:

reveng.xml マッピング構成

ジェネレーターでこの reveng.xml を使用します。

ジェネレーターでこの reveng.xml を使用します

于 2013-08-02T07:30:10.293 に答える