一対多[1:N]
7634 ワード
一方向
[Member]
@Entity
public class Member {
@Id @GeneratedValue
@Column(name="MEMBER_ID")
private Long id;
@Column(name="USERNAME")
private String username;
// getter, setter...
}
[Team]@Entity
public class Team {
@Id @GeneratedValue
@Column(name="TEAM_ID")
private Long id;
@Column(name="NAME")
private String name;
@OneToMany
@JoinColumn(name="TEAM_ID")
private List<Member> members = new ArrayList<>();
// getter, setter..
}
[JpaMain]Member member = new Member();
member.setUsername("member1");
em.persist(member);
Team team = new Team();
team.setName("teamA");
team.getMembers().add(member);
em.persist(team);
[JpaMain実行時に発行されたクエリー]INSERT INTO MEMBER (USERNAME, MEMBER_ID) VALUES ('member1', 1);
INSERT INTO TEAM (NAME, TEAM_ID) VALUES ('teamA', 1);
UPDATE MEMBER SET TEAM_ID = 1 WEHRE MEMBER_ID = 1;
整理する
短所
リファレンス
JPAに関する講座もそうですが、関連記事を見ると双方向関係よりも一方向関係の方がおすすめです.しかし、これは半分対半分の間違った主張だ.
正確には、多対一(N:1)の一方向関連関係を用いることが推奨される.
これは一方通行は双方向よりいいですか?便で確認できます.
Reference
この問題について(一対多[1:N]), 我々は、より多くの情報をここで見つけました https://velog.io/@jhp1115/일대다1Nテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol