2011-12-22 27 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對象添加到集合中。