0
GORMにはいくつかのレガシーデータベースマッピングがあり、いくつかは列挙型の主キーを持っています。列挙は、序数ではなく文字列値を使用して格納されます。例えばGrailsのIdフィールドとしてGroovy Enumを使用する
:あなたがインスタンスを取得しようとすると、あなたは
class AccountingGLMap {
AccountingTypeCode id
String typeCode
static mapping = {
id(column: 'accountingTypeCode', generator: 'assigned')
}
}
取得:
| Error 2012-02-23 10:32:41,319 [pool-5-thread-1] ERROR context.GrailsContextLoader - Error executing bootstraps: could not deserialize; nested exception is org.hibernate.type.SerializationException: could not deserialize
私が正しく列挙にテーブルマップ内の値は、(私ができる与えられたことを確認しました主キーでない限りEnumでオブジェクトをインスタンス化します)。 EnumをStringに変更すると、すべて正常に動作します。
JPAを使用しているときに主キーとしてEnumを使用できないと主張している記事がありましたが、これにも異議がありました。
誰でもこれを行った経験がありますか?
EDIT:参考のため、Oracleデータベースに対して2.0.1を使用しています。
私はちょうどメモリデータベースで使用してGrailsの1.3.7でこれを実行しようとしましたし、私が持っていました問題ない。どのGrailsのバージョンとどのタイプのデータベースを使用していますか? –
申し訳ありませんが、Oracleで2.0.1を使用しています。 Enumがキーであるときだけ壊れるように見えます。そうでなければ、マッピングは正常に動作します。 – Aaron