2012-04-01 10 views
0

私のJavaモデルでPostgreSQLのお金の種類を定義する必要があるデータのタイプは?PostgreSQLのお金のデータ型をORMLiteにマップ

私はBigDecimalを使うことができますが、PostgreSQLではvarchar(255)に対応しています。

+2

貨幣データ型をPostgresで使用しないでください。代わりに 'decimal'を使用してください。お金の種類にはさまざまな問題があります(たとえばロケールに依存しているため、さまざまなコンピュータで問題が発生する可能性があります(例:http://archives.postgresql.org/pgsql-jdbc/2011-11/msg00108.php)。また、文字列に数値を格納することは決してありません。 –

答えて

1

@ a_horseさんのコメントは良い情報を提供していると思いますが、私はいくつかの追加情報を追加すると思います。ORMLite's詳細。

ORMLiteのBIG_DECIMAL_NUMERICを使用すると、PostgresにNUMERICという名前で保存されます。

@DatabaseFiled(dataType = BIG_DECIMAL_NUMERIC) 
BigDecimal number; 

お金の種類を使用するように設定されている場合は、独自のカスタムペイスターを定義することができます。

http://ormlite.com/docs/custom-persister

カスタムタイプのデータの存続を定義する方法を示したコードとサンプルプロジェクトもあります:あなたは、ドキュメントでその前を見てデートすることができます

http://ormlite.com/docs/data-persister-example

+0

@DatabaseField(dataType = DataType.BIG_DECIMAL_NUMERIC)を使うと、BigDecimalをNumericにマップすることができます。私はBigDecimalを使用します。 – technomage

関連する問題