반응형

JPA 2

Spring Data JPA - Specification이란?

JPA를 이용해서 개발을 하다보면, 복잡한 검색조건, 단순히 검색조건이 한 두개만 늘어나도 상당히 코드의 가독성이 확 떨어지는 경우가 생깁니다. 그런 상황에서 동적쿼리라는 말이 들리고, Specification이라는 인터페이스도 들리게 됩니다. Specification이란 무엇인지 한 번 알아보도록 하겠습니다. Specification이란, Spring Data JPA에서 제공하는 API중에 하나입니다. 복잡한 검색 조건, 다양한 조합의 필터링 로직을 쉽게 구현할 수 있는 API입니다. 특히 검색이나 필터링 조건이 많은 REST API를 개발할 때 매우 유용한 API입니다. 왜 써야 하는가? 테이블에서 필드에서 조건이 맞는 데이터를 가져온다고 생각해봅시다. 그럼 JPA로 간단하게 인터페이스의 method..

IT Tech/Java 2024.03.25

JPA의 영속성 전파 cascade 옵션에 대해서 알아보기

JPA를 가지고 데이터베이스를 설계할 때, 아무 생각없이 cascade 속성을 사용해왔습니다. cascade란 무엇일까요? 이 옵션을 통해서 어떤 일들이 일어나는 걸까요? 한 번 알아보도록 해봅시다. cascade? JPA에서 'cascade' 속성은 엔티티 간의 관계에서 한 엔티티에 대한 영속성 관리 작업을 관련 엔티티에도 적용할지 여부를 정의하는 속성입니다. 즉, 한 엔티티의 생명주기 이벤트(예: 저장, 업데이트, 삭제)가 연관된 엔티티에도 전파되도록 할지를 결정하는 설정입니다. 말이 되게 어려운데요. 간단하게 삭제로 알아보면, 부모 엔티티를 삭제하면, 해당 부모 엔티티와 연관되어 있는 엔티티들도 삭제가 됩니다. @Entity @Table public class CouponBookmark { @Id ..

IT Tech/Java 2024.01.17
728x90
반응형