我有一个名为 Grails 2.2.3 的域类FundType
,我试图将其映射到旧数据库表。它有两个字段:code
和description
。我希望在我使用域类的任何时候id
被调用code
,最好是在任何生成的脚手架上。但是每次我使用 name 键时,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'
}
}
我添加了一些 sql 日志来查看 Hibernate 正在做什么,这就是输出:select * from ( select this_.FUND_CODE as RTVFTYP1_1_0_, this_.FUND_DESC as RTVFTYP2_1_0_ from RTVFTYP this_ ) where rownum <= ?