私は次のドメインクラスを持っています:
class Team{
static hasMany = [localMatches: Match, visitingMatches: Match]
static mappedBy = [localMatches: 'localTeam', visitingMatches: 'visitingTeam']
List<Match> localMatches = new ArrayList<Match>()
List<Match> visitingMatches = new ArrayList<Match>()
}
class Match{
Team localTeam
Team visitingTeam
}
私が以下を実行すると:
Match match = new Match(localTeam: aLocalTeam, visitingTeam: aVisitingTeam)
match.save(flush: true, failOnError: true)
「原因:org.h2.jdbc.JdbcSQLException:列「LOCAL_TEAM_ID」にNULLは許可されていません; SQLステートメント:」という例外が発生します。
したがって、例外を回避するために、試合を保存する前に各チームで試合を設定する必要があります。
Match match = new Match(localTeam: aLocalTeam, visitingTeam: aVisitingTeam)
aLocalTeam.localMatches.add(match)
aVisitingTeam.localMatches.add(match)
match.save(flush: true, failOnError: true)
保存する前に各チームに試合を追加する必要がないように、クラスをマッピングする方法はありますか?