[Grails] 关于grails外键映射的一点问题,好多方法可以映射,但怎么都是映射另一个表的主键呢,我可以映射,不是主键的字段吗?

jy00057800 2007-12-10
菜单类:
class Menus {
        static optionals = ['菜单代码','菜单名字','模块代码']
//static belongsTo = Modules
String menuCode
String menuName
Modules module
String bz
static mapping = {
      table 'menus'
      version false     
      columns {
   id column:'menu_id'
   module column:'module_code'
      } 
  }
}
模块类:
class Modules {

static hasMany = [menulist:Menus]
String moduleCode
String moduleName
String bz
static mapping = {
      table 'modules'
      version false
    
      columns {
    id column:'module_id'
    menulist joinTable:[name:'gcc', key:'menu_code', column:'menu_name']  

      }

  }
}
碰到如下问题:
1.
我用rc1生成的外键时,总是另一个表的主键:
Menus类里面module column:'module_code'
这句话没有用,生成的数据库表字段就是module_id,换成rc2的时候这句话生成的外键可以是我自定义的名字,如:'module_code', 但是生成的外键都是对饮Modules表的module_id主键,
我想在Menus类中生成外键module_code对应ModuleS类的module_code,而不是module_id
2.
发现static belongsTo = Modules这句话不是必须的,不知道对不对,希望高人指教.
3.
menulist joinTable:[name:'gcc', key:'menu_code', column:'menu_name']  
测试了好多个页面,没有发现是什么作用
Global site tag (gtag.js) - Google Analytics