我有一个域类arHistory,如下所示:
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)
}
现在,在运行应用程序之后,GORM将创建表ar_history和ar_history_access_request(一对多关系的联接表)
上面的联接表只有2个外键,表本身没有主键ID
我想知道三件事
1)我是否需要连接表的主键ID
2)如果是,如何创建ID(我是否通过mysql手动创建)
3)拥有hasMany()而不是在ArHistory中定义一个类变量AccessRequest的优点是什么,它仅仅是规范化的数据吗?
问候
普里扬克
最佳答案
您不需要联接表中的主键,因为您不允许使用hasMany进行重复。阅读hasMany的文档:“Grails将基于hasMany设置将类型为java.util.Set的属性自动注入(inject)域类中”。因此,不需要主键。
第三个问题是什么意思? hasMany允许您向集合中添加许多AccessRequest对象。
关于grails - 使用gorm进行一对多映射,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8598036/