-
Notifications
You must be signed in to change notification settings - Fork 2
Open
Description
https://jyami.tistory.com/22 - 혼자 정리한 자료 : 제일 아랫단
링크 주소
[Parent.java] https://github.com/mjung1798/spring-boot/blob/master/jpa-lab/src/main/java/com/jyami/jpalab/domain/Parent.java
[Child.java] https://github.com/mjung1798/spring-boot/blob/master/jpa-lab/src/main/java/com/jyami/jpalab/domain/Child.java
[Parent.java]
@Entity
@NoArgsConstructor
@Getter
public class Parent {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
@OneToMany(mappedBy = "parent", orphanRemoval = true)
private List<Child> childList = new ArrayList<>();
@Builder
public Parent(String name) {
this.name = name;
}
}[Child.java]
@Entity
@Getter
@NoArgsConstructor
public class Child {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
@ManyToOne
@JoinColumn
private Parent parent;
@Builder
public Child(String name, Parent parent) {
this.name = name;
this.parent = parent;
parent.getChildList().add(this);
}
}[테스트 코드]
@Test
public void Parent컬렉션의_child를지웠을_때(){
Parent parent1 = Parent.builder()
.name("parent")
.build();
Child child1 = Child.builder()
.parent(parent1)
.name("child1")
.build();
Child child2 = Child.builder()
.parent(parent1)
.name("child2")
.build();
parentRepository.save(parent1);
childRepository.save(child1);
childRepository.save(child2);
entityManager.clear();
Parent parent = parentRepository.findById(2L).get();
parent.getChildList().remove(0);
parentRepository.save(parent);
entityManager.clear();
Parent findParent = parentRepository.findById(2L).get();
assertThat(findParent.getChildList().size()).isEqualTo(1);
}Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels