hibernate - Grails GORM映射尝试访问不存在的字段 “class”

这很奇怪。

class Service implements Serializable{

Integer id
String serviceName
String description
SortedSet serviceRequirements

static hasMany = [ serviceRequirements : ServiceRequirement]

static mapping = 
{
    table 'service'

    columns {
        id column:'serviceId'

    }
}}

访问serviceInstance.serviceRequirements时生成的休眠sql为:
  servicereq0_.serviceId as serviceId1_,
    servicereq0_.serviceRequirementId as serviceR1_1_,
    servicereq0_.serviceRequirementId as serviceR1_9_0_,
    servicereq0_.version as version9_0_,
    servicereq0_.description as descript3_9_0_,
    servicereq0_.header as header9_0_,
    servicereq0_.isPersonal as isPersonal9_0_,
    servicereq0_.requirementKey as requirem6_9_0_,
    servicereq0_.required as required9_0_,
    servicereq0_.serviceId as serviceId9_0_,
    servicereq0_.type as type9_0_,
    servicereq0_.weight as weight9_0_,
    servicereq0_.oauthAccessTokenUrl as oauthAc12_9_0_,
    servicereq0_.oauthAuthorizeAdditionalParameters as oauthAu13_9_0_,
    servicereq0_.oauthAuthorizeState as oauthAu14_9_0_,
    servicereq0_.oauthAuthorizeUrl as oauthAu15_9_0_,
    servicereq0_.oauthClientId as oauthCl16_9_0_,
    servicereq0_.oauthClientSecret as oauthCl17_9_0_,
    servicereq0_.oauthRequestTokenUrl as oauthRe18_9_0_,
    servicereq0_.oauthType as oauthType9_0_,
    servicereq0_.class as class9_0_ 

除了最后一个“类”,所有字段都可以。它在数据库或称为ServiceRequirement的域类中根本不存在。

最佳答案

当列class存储多个类时,该列会自动添加到表中。如果ServiceRequirement类具有也是域类的子类,则该表将需要class列来知道它是哪种ServiceRequirement。如果设置了dbCreate,Grails通常很聪明,可以自动添加该列,但是如果您手动管理模式,则需要自己添加。

https://stackoverflow.com/questions/7402310/

相关文章:

hibernate - hibernate 缓存问题

javascript - Grails-在remoteFunction中将JS变量用于 Contro

grails - grails什么时候分配ID?

grails - Grails Spring安全认证-未显示GSP错误

unit-testing - 使用自定义属性编辑器时如何对 Grails Controller 进行

jakarta-ee - 将Grails应用程序作为一个war文件部署在另一个Java EE Web

javascript - 使用Ajax添加TinyMCE实例-Grails

grails - Grails整体样式

grails - 在Grails 1.1.1中安装Ivy插件:找不到Ivy zip文件

grails - 使用类为M:M关系建模时,Grails 2.0在Bootstrap中服务于不同的行