728x90
반응형

프레임워크와 라이브러리/JPA 3

[JPA 생명 주기] Cascade와 OrphanRemoval 완전 이해하기

영속성 전이(Cascade)와 고아 객체 제거(OrphanRemoval) JPA를 사용하다 보면, 연관된 엔티티도 함께 저장하거나 삭제하고 싶을 때가 많습니다. 예를 들어, 게시글(Post)을 저장하면서 댓글(Comment)도 함께 저장하려면 어떻게 해야 할까요?이럴 때 사용하는 기능이 바로 이것입니다.Cascade (영속성 전이) : 연관 엔티티에 대한 생명주기 자동 전파OrphanRemoval (고아 객체 제거) : 부모 객체와의 관계가 끊어진 자식 엔티티 자동 삭제 1. 영속성 전이(Cascade)란?부모 엔티티의 상태 변화(Persist, Merge, Remove 등)가 자식 엔티티에 전파되도록 하는 기능입니다.예를 들어, 부모 객체를 저장할 때, 연관된 자식 객체도 자동으로 저장되게 하려면 ..

[JPA 관계 매핑] 객체 간 관계를 데이터베이스에 자연스럽게 표현하는 법

JPA의 관계 매핑 JPA는 객체 간의 연관 관계(association)를 데이터베이스의 외래 키 관계로 변환해주는 기능을 제공합니다. 객체지향에서는 필드 참조로 관계를 표현하고, 데이터베이스에서는 외래 키(Foreign Key)로 표현하죠. 이 둘을 매끄럽게 연결해주는 것이 바로 JPA의 관계 매핑(association mapping)입니다.이 글에서는 1:1, 1:N, N:1, N:N 관계의 표현 방식과 주의사항, 실전 팁까지 모두 알아봅시다. 1. 왜 관계 매핑이 중요한가?객체 지향 프로그래밍에서는 객체 간의 참조(Reference) 를 사용하지만, 관계형 데이터베이스에서는 외래 키(Foreign Key) 를 사용해 관계를 표현합니다.즉, 다음과 같은 차이가 존재합니다. 객체 지향 세계 관계형 ..

[JPA] 객체와 데이터베이스를 잇는 다리

JPA(Java Persistence API) JPA(Java Persistence API)는 자바 애플리케이션에서 데이터베이스와의 상호작용을 단순하고 직관적으로 만들어주는 ORM 기술입니다. 복잡한 SQL을 직접 작성하지 않아도 객체 중심의 프로그래밍을 통해 데이터베이스를 다룰 수 있게 해주며, 유지보수성과 생산성을 높여줍니다. 이 글에서는 JPA의 기본 개념부터 핵심 동작 원리, 주요 어노테이션, 실전 예제까지 한 번에 정리해보겠습니다. 1. JPA란 무엇인가?JPA(Java Persistence API)는 Java 애플리케이션에서 관계형 데이터베이스를 객체 지향적으로 다룰 수 있도록 도와주는 표준 API입니다. 즉, 복잡한 SQL문 없이도 객체를 DB 테이블에 매핑하고, 저장하고, 조회할 수 있게..

728x90
반응형