В Grails, как я могу создать модель домена, чтобы связать две другие модели? - PullRequest
0 голосов
/ 22 апреля 2010

В настоящее время я пытаюсь создать объект домена Friendship, чтобы связать два объекта User (с небольшим количеством дополнительных данных: createDate, VerifiedStatus). Моя модель домена выглядит следующим образом

class Friendship {

User userOne
User userTwo
Boolean confirmed
Date createDate
Date lastModifiedDate

static belongsTo = [userOne:User , userTwo:User]

static constraints = {
userOne()
userTwo()
confirmed()
createDate()
lastModifiedDate()
}
}

Я также добавил следующие записи в класс пользователя

static hasMany = [ friendships:Friendship ]
static mappedBy = [ friendships:'userOne' , friendships:'userTwo' ]

Когда я делаю это, результатом является новая дружба, созданная (и доступная для просмотра через контроллер) с обоими пользователями, перечисленными в их соответствующих местах. Когда я просматриваю детали userOne, я вижу список судов. Когда я просматриваю детали userTwo, дружбы нет в списке. Это не то поведение, которого я ожидал. Что я делаю неправильно? Почему я не вижу дружбу в списке под обоими пользователями?

1 Ответ

1 голос
/ 22 апреля 2010

Вы дважды объявили свойства userOne и userTwo в классе Friendship. Однажды здесь:

static belongsTo = [userOne:User , userTwo:User]

И снова здесь:

User userOne
User userTwo

Измените класс дружбы на этот

class Friendship {

  Boolean confirmed
  Date createDate
  Date lastModifiedDate

  static belongsTo = [userOne:User , userTwo:User]

  static constraints = {
    userOne()
    userTwo()
    confirmed()
    createDate()
    lastModifiedDate()
  }
}
...