프록시 객체 -->지연로딩
가급적 지연 로딩만 사용
--> 연관된 객체가 많을 경우에 즉시로딩을 사용하면 효율이 많이 떨어진다.
즉시 로딩은 JPQL에서 N+1 문제를 일으킨다.
--> N개의 Member가 Team을 갖고 있을 시 N개의 team조회 쿼리 발생
@ManyToOne , @OneToOne은 기본이 즉시 로딩 --> LAZT로 바꿔야함
(속성fetch)
특정 엔티티를 영속 상태로 만들 때 연관된 엔티티도 함꼐 영속 상태로 만들고 싶을 때 사용한다.
ALL :영속, 삭제 모두 적용
persist : 영속만 적용
// @OneToMany(mappedBy = "parent",cascade = CascadeType.PERSIST,orphanRemoval = true)
// private List<Child> childList = new ArrayList<>();
Parent parent = new Parent();
Child child1 =new Child();
Child child2=new Child();
parent.addChild(child1);
parent.addChild(child2);
em.persist(parent);
em.flush();
em.clear();
Parent findParent = em.find(Parent.class, parent.getId());
findParent.getChildList().remove(0);
//// @OneToMany(mappedBy = "parent",cascade = CascadeType.PERSIST,orphanRemoval = true)
Parent parent1 = em.find(Parent.class, id);
parent1.getChildren().remove(0);