Использование статического свойства hasOne в классе контроллера Grails - PullRequest
1 голос
/ 22 июля 2009

Надеюсь, это будет легко ответить. Я создал класс в Grails под названием player, который имеет эту информацию:

class Player {
 String steamId
 String name
 String portrait
 static hasMany = {playerStatistics:PlayerStatistics}
 static hasOne = {playerForumProfile:PlayerForumProfile}
}

Для пояснения, объект Player может иметь один объект PlayerForumProfile, но объект player всегда создается ДО объект PlayerForumProfile. Моя проблема связана с доступом к объекту playerForumProfile, связанному со свойством hasOne в контроллере класса PlayerForumProfile. Я предполагал, что делать это:

    def playerForumProfileInstance = new PlayerForumProfile()
    def playerInstance = Player.get(params.id)

    playerForumProfileInstance = playerInstance.playerForumProfile

приведет к вытягиванию объекта PlayerForumProfile, связанного с объектом playerInstance, в переменную playerForumProfileInstance, однако, когда я пытаюсь это сделать, Grails выдает ошибку, сообщающую, что такого свойства как playerForumProfile нет. Можно ли получить доступ к объекту свойств hasOne таким способом или мне нужно сделать что-то еще?

Edit: я также пытался изменить класс Player, чтобы он включал переменную с именем playerForumProfile и редактировал PlayerForumProfile, чтобы он имел объявление ownTo , но это продолжало приводить к исключению нулевого указателя при запуске моего приложения.

Редактировать: Немного больше информации, я создал новое приложение Grails с нуля и создал отношения так, как они выглядят в документации Grails, и они запустились без проблем, поэтому я думаю, что может быть проще просто начать новое приложение и скопировать файлы поверх.

Ответы [ 2 ]

5 голосов
/ 02 августа 2010

В GORM есть функция hasOne: http://grails.org/doc/latest/ref/Domain%20Classes/hasOne.html

3 голосов
/ 22 июля 2009

Этот ответ больше не верен для Grails 2.X и выше, он был верным в 2009 году, когда первоначально был дан ответ.

В GORM нет свойства hasOne, оно также принадлежит:

static belongsTo = [playerForumProfile: PlayerForumProfile]

или просто обычное типизированное определение имени атрибута, если не существует каскадных отношений, подразумеваемых отношением:

PlayerForumProfile playerForumProfile

Подробнее см. Документацию GORM .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...