o-o!OneToManyをテーブル内にマッピングするにはどうすればいいですか?
WordPressデータベースからwp_postsテーブルをマップしようとしています。
@Entity
@Table(name = "wp_posts")
@Getter
@Setter
public class WPPosts {
@Id
@Column(name = "ID")
private long id;
@Column(name = "post_parent")
private long postParent;
@OneToMany(targetEntity = WPPosts.class, mappedBy = "postParent")
List<WPPosts> childPosts;
}
テーブルの一例(再び!:簡体字):次のようになります。
ID --- post_parentこれは実体である
:私は私の質問を簡素化するための情報を残しています
1 ----ヌル
2 ---- 1
3 ---- 1
4 ----ヌル
IDが1のエンティティは、サイズ2の子ページポスト(ポスト2と3を含む)を取得する必要があります。
残念ながら、これは機能しません。私は例外はありませんが、リストは空のままです。
'mappedBy'は、idではなく、* entity *を参照することになっています。あなたのマッピングが機能するには '@ManyToOne WPPosts postParent'フィールドが必要です。また、このようなマッピングでは、 'WPPosts.postParent'は関係の所有側であり、' WPPosts.postParent'への変更だけがJPAによって承認されることになります。 'WPPosts.childPosts'への変更は無視されます。 – crizzis
リストにアクセスする限り、トランザクションコンテキスト内のリストにアクセスするか、 '@ OneToMany'を' fetch = FetchType.EAGER'として宣言する必要があります。それ以外の場合は、遅延初期化の例外が発生します – crizzis
あなたのコメントを回答として入力すると、私はそれを承認します。助けてくれてありがとう。 –