2012-12-12 48 views
0

我有以下域類時解決異常。 jdbc.JdbcSQLException:NULL不允許列「LOCAL_TEAM_ID」; SQL語句:「Grails的映射來節省實例

所以我需要在保存匹配之前在每個團隊中設置匹配以避免異常:

Match match = new Match(localTeam: aLocalTeam, visitingTeam: aVisitingTeam) 
aLocalTeam.localMatches.add(match) 
aVisitingTeam.localMatches.add(match) 
match.save(flush: true, failOnError: true) 

是否有任何映射類的方法,所以我不需要在保存之前將匹配添加到每個團隊?

回答

2

hasMany塊定義了Match有許多localMatches,但隨後重新定義下面作爲localMatches到單個Match的關係。我相信你實際上的意思是:

class Team { 
    static hasMany = [localMatches: Match, visitingMatches: Match] 
    static mappedBy = [localMatches: 'localTeam', visitingMatches: 'visitingTeam'] 
} 

class Match { 
    Team localTeam 
    Team visitingTeam 
} 

映射這樣,Team將有Matches兩個集合,並且每個Match將有一個localvisiting Team

+0

是的,我錯過了這個例子,現在我編輯了它。我總是傾向於用明確的方式聲明de列表,因爲否則我有時會在eclipe上進行調試時嘗試引發錯誤 –