Няма ўладальнік вызначаецца паміж даменнымі класамі: многія да многіх

Гэта мае класы дамена:

class Game {
    static hasMany = [players: User]
    static belongsTo = [owner: User]
}

class User {
    static hasMany = [games: Game]
}

Калі я спрабую выкарыстоўваць іх як яны ёсць я атрымліваю Няма ўладальніка вызначаецца паміж даменнымі класамі . Таму мне трэба, каб вызначыць уладальніка адносін. Даданне статычны belongsTo = Гульня у Карыстальнік выклікае Класы дамена могуць не належаць адзін з адным у многія-да-шматлікім .

Адзіны варыянт, я магу думаць пра тое, каб дадаць Статычная belongsTo = Карыстальнік у гульні клас, але ў мяне ўжо ёсць belongsTo ёсць.

Як гэтая мадэль?

5

8 адказы

class Game {
    User owner
    static hasMany = [players: User]
    static belongsTo = User
}

class User {
    static hasMany = [games: Game]
}

Вам трэба будзе падаць адзін бок адносін, як уладальнік, робячы гэта вы будзеце рабіць User дамен класа як уладальнік многіх да многіх.

<�Код> belongsTo кантралюе поле, дзе дынамічны AddTo *() метады могуць быць выкарыстаны с. мы можам назваць User.addToGames() , паколькі гульні belongsTo <�Код> User . мы не можам назваць Game.addToPlayers() .

5
дададзена
я атрымаў тую ж мадэль дадзеных і гэта не працуе (Паведамленне пра памылку: Няма ўладальніка вызначаецца паміж даменнымі класамі [клас Game] і [клас карыстальніка] ў многія-да-шматлікім. Прыклад: статычны belongsTo = User). Ваш адказ проста яшчэ Горм абазначэнне, якое азначае, што сапраўды гэтак жа,
дададзена аўтар pebbles, крыніца
class Game {
    User owner
    static hasMany = [players: User]
    static belongsTo = User
}

class User {
    static hasMany = [games: Game]
}

Вам трэба будзе падаць адзін бок адносін, як уладальнік, робячы гэта вы будзеце рабіць User дамен класа як уладальнік многіх да многіх.

<�Код> belongsTo кантралюе поле, дзе дынамічны AddTo *() метады могуць быць выкарыстаны с. мы можам назваць User.addToGames() , паколькі гульні belongsTo <�Код> User . мы не можам назваць Game.addToPlayers() .

5
дададзена
я атрымаў тую ж мадэль дадзеных і гэта не працуе (Паведамленне пра памылку: Няма ўладальніка вызначаецца паміж даменнымі класамі [клас Game] і [клас карыстальніка] ў многія-да-шматлікім. Прыклад: статычны belongsTo = User). Ваш адказ проста яшчэ Горм абазначэнне, якое азначае, што сапраўды гэтак жа,
дададзена аўтар pebbles, крыніца
class Game {
    User owner
    static hasMany = [players: User]
    static belongsTo = User
}

class User {
    static hasMany = [games: Game]
}

Вам трэба будзе падаць адзін бок адносін, як уладальнік, робячы гэта вы будзеце рабіць User дамен класа як уладальнік многіх да многіх.

<�Код> belongsTo кантралюе поле, дзе дынамічны AddTo *() метады могуць быць выкарыстаны с. мы можам назваць User.addToGames() , паколькі гульні belongsTo <�Код> User . мы не можам назваць Game.addToPlayers() .

5
дададзена
я атрымаў тую ж мадэль дадзеных і гэта не працуе (Паведамленне пра памылку: Няма ўладальніка вызначаецца паміж даменнымі класамі [клас Game] і [клас карыстальніка] ў многія-да-шматлікім. Прыклад: статычны belongsTo = User). Ваш адказ проста яшчэ Горм абазначэнне, якое азначае, што сапраўды гэтак жа,
дададзена аўтар pebbles, крыніца

Паспрабуйце гэта:

class Game {
    User owner
    static hasMany = [players: User]
    static belongsTo = User
}
1
дададзена

паспрабуйце гэта:

class Game {
    User owner
    static hasMany = [players: User]
    static belongsTo = User
}

class User {
    static hasMany = [games: Game, owns: Game]
    static mappedBy = [games:'players', owns: 'owner']
}

this settings work for me. And here is a good thread for mappedBy: GORM mappedBy and mapping difference

0
дададзена

паспрабуйце гэта:

class Game {
    User owner
    static hasMany = [players: User]
    static belongsTo = User
}

class User {
    static hasMany = [games: Game, owns: Game]
    static mappedBy = [games:'players', owns: 'owner']
}

this settings work for me. And here is a good thread for mappedBy: GORM mappedBy and mapping difference

0
дададзена

паспрабуйце гэта:

class Game {
    User owner
    static hasMany = [players: User]
    static belongsTo = User
}

class User {
    static hasMany = [games: Game, owns: Game]
    static mappedBy = [games:'players', owns: 'owner']
}

this settings work for me. And here is a good thread for mappedBy: GORM mappedBy and mapping difference

0
дададзена

можа быць, было б лепш не выкарыстоўваць «belongsTo» наогул? Я маю на ўвазе, выкарыстоўваючы простую спасылку поля, як

class Game {
    User owner
    static hasMany = [players: User]
}

FYI, Я хацеў бы быць асцярожным з выкарыстаннем «ўладальнік» імя поля, гэта можа выклікаць праблемы, калісьці выкарыстаў у засаўцы, які мае сваю ўласную «ўладальнік» спасылку (напрыклад, ва ўмовах забудоўшчыка) Я ведаю, што гэта выклікала праблемы яшчэ ў Grails 1.3.X, я не ведаю, калі гэта ўсё-ткі справа

0
дададзена