2017-11-25 10 views
0

のための代わり進の整数を生成します。 PRICE NUMERIC(38) NOT NULLのEclipseLinkオートは、次のJPAエンティティを考えるとH2データベース

EclipseLinkは、なぜ10進数でない数値を作成しますか?

フィールドprice@Column(precision = 8, scale = 2)を追加すると、期待通りに機能し、PRICE NUMERIC(8,2) NOT NULLが作成されます。

スキーマの自動生成時にBigDecimal列のprecisionおよびscaleの属性が必要ですか?

+0

H2が作成しますJPAプロバイダによって作成されるもの。どちらがあなたが使用しているのか不思議です – DN1

+0

ヒントありがとうございます。プロバイダに質問を追加しました。 「EclipseLink」 –

+0

デフォルトでは、EclipseLink永続性プロバイダは、単純なタイプの基本マッピングを自動的に構成します。 '@ Column'や' @ Basic'などのアノテーションを使用する場合は、マッピングを微調整できます。 – newOne

答えて

0

JDBC仕様によるとBigDecimalは数値にマップされるからです。デフォルトのスケールは0

NUMERIC(38)(またはOracle NUMBER(38)のようなデータベースに)あるスケールを指定せずに は、データベースにこのデータ型の最大値である:

38 significant digits in the range of -(10**125) to +(10**125). 
関連する問題