FundType
レガシーデータベーステーブルにマップしようとしているGrails 2.2.3ドメインクラスがあります。と の 2 つのフィールドがcode
ありdescription
ます。ドメインクラスを使用するときはいつでも、できれば生成された足場のいずれかでid
呼び出されるようにしたいと思います。code
しかし、名前キーを使用するたびに、次のid
例外が発生します。
| Error 2013-07-24 09:38:44,855 [localhost-startStop-1] ERROR context.GrailsContextLoader - Error initializing the application: Error evaluating ORM mappings block for domain [com.company.scholallow.FundType]: null
Message: Error evaluating ORM mappings block for domain [com.company.scholallow.FundType]: null
これは、私のドメインクラスで構成されているものです:
class FundType {
String id
String description
static mapping = {
id column: 'fund_code', generator: 'assigned', name: 'code'
description column: 'fund_desc'
}
}
FundType インスタンスを使用しているときはいつでも、fundTypeInstance.code
and NOTのようなコードを呼び出したいと思いますfundTypeInstance.id
。私はidではなくコードと呼ばれるものを扱っているので、これは私にとってよりユーザーフレンドリーになります。
だから私は知りたいのですが、私がやりたいことは可能ですか?そして、この ORM マッピング エラーを引き起こしているドメイン クラスで間違っていることは何ですか?
編集:
さて、ドメイン クラスを次のように変更したところ、FundType not found with ID null エラーが発生しました。
class FundType {
String code
String description
static mapping = {
id generator: 'assigned', name: 'code'
code column: 'fund_code'
description column: 'fund_desc'
}
}
Hibernateが何をしているかを確認するためにいくつかのSQLログを追加しました。これが出力されたものです:select * from ( select this_.FUND_CODE as RTVFTYP1_1_0_, this_.FUND_DESC as RTVFTYP2_1_0_ from RTVFTYP this_ ) where rownum <= ?