2015-04-24 149 views
0

我将数据库设计为域类。当我尝试运行应用程序,我得到一个错误缺少列标识

缺少科拉姆:tbl_fiscal_year_idtblAccessRight

的为域等级的定义和映射如下

class TblAccessRight {  
    long rightID 
    Character code 
    String name 
    Boolean active 
    TblFiscalYear tblFiscalYear 

    static hasMany = [tblPrivileges: TblPrivilege, 
         tblResourceTypes: TblResourceType] 

    static mapping = { 
     id column: "RightID", generator: "assigned",name:'rightID' 
     version false 
     table 'tblAccessRight' 
    } 

    static constraints = { 
     code maxSize: 1 
     name nullable: true, maxSize: 64 
    } 
} 

class TblFiscalYear { 
    String fiscalYear 
    String title 
    Boolean active 
    Character defaultFy 

    static hasMany = [tblAccessRights: TblAccessRight, 
         tblAppropriationGroups: TblAppropriationGroup, 
         tblBudgetProjectNames: TblBudgetProjectName, 
         tblC3ipocs: TblC3ipoc, 
         tblCises: TblCis, 
         tblCommentses: TblComments, 
         tblContractors: TblContractor, 
         tblCotrs: TblCotr, 
         tblDasds: TblDasd, 
         tblDirectors: TblDirector, 
         tblKeys: TblKey, 
         tblMiprpocs: TblMiprpoc, 
         tblObjectiveses: TblObjectives, 
         tblOp32s: TblOp32, 
         tblOrcs: TblOrc, 
         tblPeprojects: TblPeproject, 
         tblProgramElements: TblProgramElement, 
         tblPrograms: TblProgram, 
         tblResourceTypes: TblResourceType, 
         tblResources: TblResource, 
         tblRoles: TblRole, 
         tblTrackChangeses: TblTrackChanges, 
         tblTransactionses: TblTransactions] 

    static mapping = { 
     id name: "fiscalYear", generator: "assigned" ,type:'string', column:'FiscalYear' 
     version false 

     table 'tblFiscalYear' 
    } 

    static constraints = { 
     fiscalYear maxSize: 4 
     title nullable: true, maxSize: 48 
     defaultFy nullable: true, maxSize: 1 
    } 
} 

回答

1

您必须修改TblAccessRight映射到指定tblFiscalYear指的是哪些(在这种情况下tbl_fiscal_year_id)柱:

static mapping = { 
    table 'tblAccessRight' 
    id column: "RightID", generator: "assigned",name:'rightID' 
    tblFiscalYear column: 'tbl_fiscal_year_id' 
    version false 
} 
+0

tblFiscalYear中没有该名称的列 – allthenutsandbolts

+1

“tblAccessRight”中没有此列吗?上面的映射是针对'TblAccessRight'域类的。 – dmahapatro

+0

这不可能是正确的答案,因为它与没有映射条目时使用的相同。所有属性的默认值是将骆驼大小写的名称转换为下划线,并且当该属性是对另一个域类的引用时,还要添加'_id'后缀,因为它将是FK列。 –