DB아이콘에서 릴레이션 다이어그램 볼 수 있더라
.soutv 하면 메서드 안에 들어가도록 자동완성해줌
hibernate 생성 쿼리에서 도움을 받을수도 있더라
클래스명으로 빠르게 import할 수 있더라
OpenRepositoryVersion -> 해당 버전 코드 확인 가능
복습할땐 Github에 push 추천
엔티티 간 릴레이션이 있는 경우 아이콘 띄워주더라
fetchtype
@onetomany는 default가 lazy
@manytoone은 default가 eager
기본값
@x to many : lazy
@x to one : eager
지연 로딩된 entity 정보 조회시 persistence context 필수
-> Transactional 이어야 한다
영속 상태 entity에서 수행되는 작업들이 연관된 entity로 전파
예)
"연관된 entity"에 다음과 같이 설정
@OneToMany(mappedBy = "user", cascade = CascadeType.PERSIST)
or
@OneToMany(mappedBy = "user", cascade = {CascadeType.PERSIST, CascadeType.REMOVE})
참고
https://www.baeldung.com/jpa-cascade-types
orphanRemoval 기본값은 false
@OneToMany(mappedBy = "user", cascade = CascadeType.PERSIST, orphanRemoval = true)
orpahnRemoval
은 CascadeType.Remove
동작도 해 줌
삭제 대상 entity를 다른 곳에서 참조하고 있는지 반드시 확인해야한다.
@ManyToOne
은 아예orphanRemoval
이 없음
-> 삭제 대상을 참조하는 다른 entity가 있으므로
orpahnRemoval
과 CascadeType.Remove
는 매우 주의해서 사용해야한다...