본문 바로가기
관리자

Programming-[Backend]/JPA

[작성중][TIL][링크]Entity에 cascade=CascadeType.PERSIST 사용 시 주의

728x90
반응형

1:N의 관계를 갖는 A.class와 B.class가 있는 경우,

 

@OneToMany(fetct=FetchType.LAZY, mappedBy = "...", casecade = CascadeType.PERSIST)

private List<B> Bs;

 

CascadeType.PERSIST를 하면, A 타입만 JPA를 통해 영속성 객체로 불러오더라도, B 타입도 영속성 객체로 함께 불려오게 된다. 이것 때문에 엄청 오래 삽질을 했다...

 

정확한 원리는 아직 모르겠지만, 둘 다 영속성 객체로 걸려있으면 실제 SQL로 CRUD 시에 서로의 값을 참조하면서 무조건 넣어주어야 하는 것 같다. 링크 내용을 읽고 향후 JPA 개념이 생기면 정확하게 이해하자!

 

 

 


 

 

참조

 

 

[1] [jpa] CascadeType.PERSIST를 함부로 사용하면 안되는 이유

https://joont92.github.io/jpa/CascadeType-PERSIST%EB%A5%BC-%ED%95%A8%EB%B6%80%EB%A1%9C-%EC%82%AC%EC%9A%A9%ED%95%98%EB%A9%B4-%EC%95%88%EB%90%98%EB%8A%94-%EC%9D%B4%EC%9C%A0/

728x90
반응형