2011-12-22 54 views
0

我有一个域类arHistory如下:一对多映射使用GORM

package ars 
import ars.AccessRequest 
import gra.Users 
class ArHistory { 
    Long id =2340 
    Users updatedby 
    Date updatedon 
    String requeststatus 
    static hasMany=[accessrequests:AccessRequest] 

    static constraints = { 
     requeststatus(blank:false, nullable:false) 
    } 

现在我运行格姆创建表ar_history和ar_history_access_request(连接表为一对多的关系)的申请后

上面的连接表只有2个外键,表本身没有主键ID 我想知道3件事情, 1)是否需要连接表的主键ID 2)如果是我该如何创建id(是否通过mysql手动创建) 3)具有hasMany()而不是在ArHistory中定义类变量AccessRequest的优点是什么?它只是规范化的数据吗?

问候 Priyank

回答

1

在连接表你不需要主键,因为你不允许重复使用的hasMany。阅读hasMany的文档:“Grails会根据hasMany设置自动将类型为java.util.Set的属性注入到域类中”。因此,主键是不需要的。

第三个问题是什么意思? hasMany允许您将许多AccessRequest对象添加到集合中。