Test를 하다보니 이상한 점이 생겼다.
@Test
public void findMembers() {
for (int i = 1; i <= 5; i++) {
Member m = memberRepository.save(new Member("member" + i));
}
for (int i = 1; i <= 5; i++) {
Team t = teamRepository.save(new Team("team" + i));
}
//영속성 컨텍스트를 비워준다.
em.flush();
em.clear();
List<Member> members = memberRepository.findMembers();
for (Member member : members) {
System.out.println("member = " + member);
}
}
Member entity의 id가 1,2,3,4,5가 나오고
Team entity의 id가 6,7,8,9,10이 나왔다.
왜 다른 엔티티인데 각자 1,2,3,4,5를 갖는게 아니지?? 하고 검색해 보았다.
문제는 identity 전략이었다.
@Id
@GeneratedValue
@Column(name = "member_id")
private Long id;
이렇게 사용하고 있었는데, 전략상 Auto는 엔티티가 만들어지는 순서대로 id가 증가한다.
해결 방법으로 전략을 IDENTITY로 바꿔주었다.
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "member_id")
private Long id;