0

この質問はおそらく Hibernate と関係がありますが、Play は Hibernate を難読化しているため、とにかくわかりません...

次のサンプル コードを見てみましょう: ユーザーは多数の投稿を持っています。

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

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

で投稿を作成するときnewPostUser=Johnなぜ を呼び出さなければならないのJohn.add(newPost)ですか?

John と newPost は既にデータベースに登録されています。呼び出しがなくても.add、テーブルには外部キーの制限があります。.addメソッドを呼び出すと、実際に何が起こっているのでしょうか?

4

1 に答える 1

1

.addそれはメソッド内のコードに依存します。しかし、Hibernate では、双方向マッピングでマッピングの両側を維持する必要があります。

したがって、あなたのaddメソッドは投稿のリストに投稿を追加する可能性が高いため、マッピングの両側が維持されます(投稿を作成したときに、その時点で作成者を設定したと想定しています)。

于 2010-12-17T11:12:00.547 に答える