Проблема Grails, связанная с сохранением данных в таблицах соединений для отношений многие ко многим - PullRequest
2 голосов
/ 27 июля 2010

У меня проблемы с сохранением доменных объектов, где у меня есть отношение многие ко многим с таблицей соединений

class A{

String name
static hasMany = [bs:B]

}


class B{

String surname
static belongsTo=A
static hasMany=[as:A]

}

A a = new A(name:'Test')
B b = new B(surname:'user')

a.addToBs(b)
a.save(flush:true)

Тогда я ожидал бы увидеть следующее

Table A                      Table AB                  Table B
id    name                 a_id     b_id               id   surname
1      Test                 1         1                 1    User

Однако данные сохраняются только в таблице A.

Кто-нибудь знает, что я делаю неправильно?

спасибо

Ответы [ 2 ]

0 голосов
/ 28 июля 2010

Я пытался подражать вашему коду и каскадные работы для меня.

Класс A:

package searcher

class A {
    String name
    static hasMany = [bs:B]

    static constraints = {
    }

    public String toString() {
        def s = "Name: $name\n Bs: "
        bs.each {
            s = "$s $it "
        }
        return s
    }
}

Класс B:

package searcher

class B {

    String surname
    static belongsTo = A
    static hasMany = [as:A]

    static constraints = {
    }
}

Источник контроллера:

package searcher

class ManyController {

    def ab = {

        A a = new A(name:'Test')
        B b = new B(surname:'user')
        a.addToBs(b)
        a.save(flush:true)

        render A.list()
    }
}

Производит продукцию:

[Имя: Test Bs: searcher.B: 1]

Я не столкнулся с проблемой, которую вы сделали, но у меня были некоторые начальные проблемы, которые были устранены с помощью grails clean.Вы пробовали различные конфигурации баз данных?Я просто использовал hsqldb в памяти, установленный для создания-отбрасывания.Если вы используете установленную мной СУБД, я постараюсь указать ей другую базу данных и развернуть.

0 голосов
/ 28 июля 2010

Я нашел эту ссылку, которая показывает четкий способ отображения многих на многие отношения

http://chrisbroadfoot.id.au/2008/07/19/many-to-many-relationship-mapping-with-gorm-grails

Я до сих пор не смог заставить ее работать так, как я хочуна данный момент

...