2012-01-15 10 views
0

私はgrailsプロジェクトでjscienceの物理量を保存しようとしています。私は休止状態とデフォルトを使用していますが、私は一般的に適用可能なものを好むでしょう。私はミサと特異的に関係していると私は私の道を持っていることができれば、私はちょうどそうのようなドメインオブジェクト内の行になるだろう:Grails:jScience Amountsを保存する方法

MyDomainClass { 
    Amount<Mass> weight 
} 

しかし、それは、このエラーを与える:org.hibernate:によって引き起こさ

。例外:Data.Exception:挿入できませんでした:[project.MyDomainClass] $ Proxy10.saveOrUpdate(不明なソース) ... 27 more 原因:com.mysql.jdbc.MysqlDataTruncation:データ切り捨て:行1の「重み」 com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3601) at com.mysql.jdbc.MysqlIO.checkErrorPa cket(MysqlIO.java:3535) com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1989) (com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2150) 、com.mysql) com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2415) でcom.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2119) でjdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2626) でcom.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2333)org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdateでcom.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2318) で (DelegatingPreparedStatement。 java:105) ... 28 more

私はそれに何か問題、またはより良い方法はあり

def weight 

にそれを変更することにより、そのエラーを修正することができますか?混合ユニットを扱う利点があるデータベースソリューションはありますか?すべてを単体テストするので、これをグーグルで調べることはとてもイライラです。

答えて

1

def weightというエラーメッセージを非表示にするだけです。タイプされていないので、GrailsとHibernateはそれを永続させて無視する方法を知らない。

私の推測では、オブジェクトをBLOBとして保存していて、デフォルトのサイズでは大きすぎますが、それはおそらくあなたが望むものではありません。ドメインクラスでマッピングする方法については、http://grails.org/doc/latest/guide/GORM.html#customHibernateTypesをご覧ください。

HibernateのドキュメントにGrailsのドキュメント内のリンクが壊れている - 正しいURLはすでにカスタム(ディストリビューションまたはサードパーティからのいずれか)の種類を休止している可能性がありhttp://docs.jboss.org/hibernate/stable/core/manual/en-US/html/mapping.html#mapping-types-custom

jScienceです - あなたは確認する必要があり、そのdocs。

+0

バート、いつものように助けてくれてありがとうございます。しかし、私のアプリはdefとして永続しているようです。私はsave()とlist()を実行してからそれを見ることができます。 – Mikey

+1

'grails schema-export'をタイプを指定して実行し、再度差分を見ることなく、出力はtarget/ddl.sqlになります。 –

+0

もう一度そのヒントをありがとう。また、それを保存してlist()で元に戻すことができたにもかかわらず、SQLに保存するのは間違っていたようです。 – Mikey

関連する問題