Play: Что делает добавление объекта «многие» к свойству списка «один»? - PullRequest
0 голосов
/ 17 декабря 2010

Этот вопрос, вероятно, имеет отношение к Hibernate, но, поскольку Play запутывает Hibernate, и я все равно его не знаю ...

Возьмите следующий пример кода: у пользователя много сообщений.

public class User extends Model{
    ...
    @OneToMany(mappedBy="author")
    public List<Post> posts;
}

public class Post extends Model{
    ...
    @ManyToOne
    public User author;
}

Когда я создаю сообщение newPost с User=John, зачем мне звонить John.add(newPost)?

Джон и newPost уже находятся в базе данных. Даже без вызова .add таблицы имеют ограничения внешнего ключа. Что на самом деле происходит, когда я вызываю метод .add?

1 Ответ

1 голос
/ 17 декабря 2010

Ну, это зависит от кода в методе .add. Но с Hibernate вам нужно поддерживать обе стороны отображения в двунаправленном отображении.

Итак, ваш add метод, вероятно, добавляет публикацию в список публикаций, так что обе стороны сопоставления сохраняются (я предполагаю, что когда вы создавали публикацию, вы установили автора в этот момент).

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