web-dev-qa-db-ja.com

MySQLのJava / HibernateでBigDecimalをどのタイプにマップしますか?

前の開発者のコ​​ードの難破を経験した後、浮動小数点演算を使用しないようにすべてのお金ベースの列を移動する必要があることに気付きました。 Java側では、これはBigDecimalを使用することを意味しますが、Hibernate/JPAおよびMySQL 5を使用する場合、その列を作成するための適切なMySQLデータ型は何でしょうか?

37
benstpierre

10進数および数値。

推奨されるJava DECIMALおよびNUMERIC型のマッピングはJava.math.BigDecimalです。Java.math.BigDecimal型は、BigDecimal型を追加、減算、乗算、および除算できるようにする数学演算を提供します他のBigDecimal型、整数型、および浮動小数点型を使用します。

DECIMAL値とNUMERIC値を取得するために推奨される方法は、ResultSet.getBigDecimalです。 JDBCでは、これらのSQLタイプに単純な文字列またはcharの配列としてアクセスすることもできます。したがって、JavaプログラマーはgetStringを使用してDECIMALまたはNUMERICの結果を受け取ることができます。ただし、これは、アプリケーションの作成者がまた、これらのSQLタイプをJava数値タイプのいずれかとして取得することもできます。

詳細は here をご覧ください。

45