데이터 초기화 시 CASCADE 옵션 궁금증
87
38 câu hỏi đã được viết
안녕하세요. PostConstruct 어노테이션을 사용해 Spring이 초기화될 때 DB에 데이터를 초기화 해주셨는데요.
Order, OrderItem 클래스 필드에 cascade 옵션이 있어서 order나 orderItem만 em.persist() 하면 다른 엔티티도(delivery, orderItems 등) 다 같이 persist 되지 않나요?
왜 엔티티별로 따로 하나씩 persist 하셨는지 궁금합니다. 제가 잘못 이해한 거라면 설명 한번 부탁드리겠습니다!
Câu trả lời 2
0
안녕하세요, 인프런 AI 인턴입니다.
님의 질문에 감사드립니다. cascade 옵션은 엔티티 연관 관계에서 연관된 엔티티 간에 특정 작업(예: 저장, 삭제)을 자동으로 전파하는 편리한 기능을 제공하지만, 이는 모든 상황에서 자동으로 작동하는 것은 아닙니다. cascade를 사용하기 위해서는 설정된 특정 연관관계에서만 적용됩니다.
따라서 다음과 같이 요약할 수 있습니다:
Cascade 옵션:
cascade옵션을 통해 부모 엔티티를 persist하면 연관된 자식 엔티티도 자동으로 persist가 가능합니다. 하지만 이는 부모 엔티티가 반드시 자식 엔티티를 참조하고 있어야 하고, 해당 연관 관계에cascade설정이 있는 경우입니다.개별 persist: 모든 경우가
cascade로 해결되는 것은 아니기 때문에, 때로는 엔티티 상태나 복잡한 비즈니스 로직에 따라 개별적으로persist할 필요가 있습니다. 코드의 명확성이나 성능 상의 이유로 별도로persist하는 것이 더 나을 수 있습니다.
비슷한 질문에 대한 답변이 아래에 있으니 추가로 참고해 보세요:
- Cascade와 관련된 추가 질문 - 설명에서 cascade 사용에 관한 다른 상황들과 예시가 있습니다.
- Order Entity Cascade 관련 질문 - cascade 옵션과 연관 관계의 주인에 대한 설명이 포함되어 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
강의 관련 외 질문입니다.
0
62
2
SpringBoot4 + Hibernate7 모듈 등록 방법 공유
0
85
1
BeanCreationException
0
86
3
Update 후 UpdateMemberResponse 매핑할 때
0
46
1
트랜잭션을 사용 안 할 때 커넥션은 언제 가져오나요?
0
96
2
페이징 + 검색조건 관련해서 질문드립니다.
0
70
1
Query Dsl Q파일 질문입니다.
0
81
1
루트 쿼리라는것은
0
58
1
메서드를 분리하는 기준
0
61
1
findAllWithMemberDelivery 메서드 질문드립니다.
0
108
3
연관관계 매핑을 안 쓸 경우, 사용해야 하는 전략
0
83
2
fetch join과 영속화와 OSIV의 관계
0
83
2
Distinct 사용 전 결과에 대한 의문
0
112
2
레포지토리 계층에서의 트랜잭션에 대한 의문
0
55
1
영속성 컨텍스트 생명주기의 신기한 부분이 있습니다.
0
77
2
dto 필드 속 엔티티 여부
0
58
1
뷰템플릿 사용 시
0
76
2
Result 클래스 관련 질문
0
56
1
@PostConstruct 프록시 관련 질문드립니다
0
85
1
DTO 대신 Form 사용은 안되나요?
0
133
1
OSIV ON 상태일 때
0
94
1
fetch join VS fetch join 페이징 궁금증
0
178
2
양방향 연관관계 알아보는 법?
0
102
1
16강 17강 간단 정리 이게 맞을까요 ?
0
161
2

