3月24日発売のJavaWorld5月号にて、私の寄稿記事に誤りがあることがわかりました。訂正をすると共に、お詫び申し上げます。なんの、言い訳も出来ません。単体テスト不足です。お恥ずかしい限りです。
『特集1 完全攻略! O/Rマッピング』(2005年5月号掲載)について
『Part 2 Hibernate、Torque、iBATIS、Cayenne――主要フレームワーク総検証!』の記事中において、80ページに掲載したリスト4のマッピング・ファイルに誤りがありました。お詫びするとともに、以下に訂正いたします。
●誤
<property name="price" type="big_decimal" length="20"
not-null="true" column="PRICE"/>
●正
<property name="price" type="big_decimal" length="0"
not-null="true" column="PRICE"/>
上記の訂正に伴い、83ページ左段に掲載したサンプルの実行結果を、以下のよ
うに訂正いたします。
●誤
BID[0]: USER='Jiro' PRICE='200'
BID[1]: USER='Saburo' PRICE='300'
●正
BID[0]: USER='Saburo' PRICE='300'
BID[1]: USER='Jiro' PRICE='200'
Hibernateのマッピングファイルにおいて、数値型項目でlength属性を1以上にしている場合に、Hibernateのschemaexpostの機能を使うと、MySQLでテーブル定義がおかしくなります。これは、数値型項目の場合に、lengthの項目は、小数点以下の桁数に利用しているためです。PostgreSQLなどでは、この現象は発生しません。HibernateにおけるRDBごと方言プラグインの実装違いだと思われます。
