У меня есть вопрос о создании ассоциативной таблицы в граалях для согласования отношений «многие ко многим».Настройка такова: 1. Домен A (профиль клиента) может иметь много доменов B (Друзья) 2. Каждый домен B (Друзья) может иметь много доменов A (Профиль клиента) 3. Чтобы решить эту проблему, мне нужно создать ассоциативнуютаблица (или домен), которая имеет FK из каждой таблицы.Этот домен может быть назван Домен C (client_friend)
Вот код, который у меня есть на данный момент:
class DomainA{
String id
String firstName
String lastName
static hasMany = [domainB: DomainB]
static mapping = {
cache true
id generator: 'assigned'
columns {
firstName type:'text'
lastName type:'text'
alumConnections column: 'domaina_id', joinTable: 'a_b'
}
}
static constraints = {
firstName (nullable:true)
lastName (nullable:true)
}
}
Код доменаB:
class DomainB{
String id
String firstName
String lastName
static hasMany = [domainA:DomainA]
static belongsTo = DomainA
static mapping = {
cache true
id generator: 'assigned'
columns {
firstName type:'text'
lastName type:'text'
domainA column: 'domainb_id', joinTable: 'a_b'
}
}
static constraints = {
firstName (nullable:true)
lastName (nullable:true)
}
}
Код домена A_B:
class AB{
Date dateCreated
Date lastUpdated
long version
}
Когда я запускаю этот код, кажется, он работает.Таблицы, использующие MySQL, созданы, кажется, FK на месте.Когда я ввожу данные в класс DomainB, вводятся данные, и оба файла из DomainA и DomainB вставляются в A_B.Но проблема возникает, когда я пытаюсь удалить значения из A_B.Я пробовал что-то вроде этого:
AB results =AB.findByAIdAndBId('jIi-hRi4cI','2BYvuA2X14')
, но получаю ошибку: InvalidPropertyException: не найдено свойство для имени [a_id] для класса [class mgr.AB]
Мой вопрос такой: во-первых, я правильно настроил?Во-вторых, если да, то как мне тогда запросить таблицу AB, которая состоит из композита DomainA и DomainB?
Спасибо за любую помощь.
jason