JPA는 Java 애플리케이션이 관계형 데이터베이스(RDBMS)를 사용하는 방식을 정의한 인터페이스이다. 여기서 인터페이스라는 말은 JPA 라이브러리 자체는 특정한 기능을 하는 것이 아닌 ORM을 사용하기 위한 인터페이스를 모아둔 것이라는 뜻이다. 그러므로 순수 JP
스프링 부트에 Spring Data JPA라이브러리를 사용하여 JPA를 세팅하는 방법을 알아보자.개발환경Spring Boot: 3.2.0-SNAPSHOTGradle: gradle-8.4Java: OpenJDK17만약 application.properties가 아닌 ym
이전 포스팅에서 Spring Data JPA의 세팅방법을 다뤘는데, 여기서 작성한 내용을 기준으로 사용법에 대해서 작성한다.이게 지난 포스팅에서 작성된 내용인데, 위 내용을 그대로 변경하며 사용하겠다.위 예시에서는 그냥 포스팅을 목적으로 작성했기 때문에 Controll
ID 생성 전략 엔티티를 생성할 때 PK의 관리는 일반적으로 Database의 관리 영역에 있다. AUTO_INCREMENT 기능이나 Oracle의 경우 Sequence 등을 활용한다. (MySQL에서 Sequence기능 사용하기) Entity의 INSERT 쿼리를
Custom ID Sequence Generator 생성하기 이전 포스팅에서 JPA의 ID 생성전략에 대해 작성했는데, 그 외에도 애플리케이션내부에서 또는 데이터베이스에 사전에 직접 정의해 둔 Sequence를 통해 ID를 생성하는 방식도 있다. @GenericGene
Entity 연관관계 매핑하기 Entity의 연관관계란 쉽게 말해 클래스안에 다른 Entity를 속성으로 가지고 있냐는 것이다. 예를 들어, 게시판 기능을 만든다고 가정하면 게시판이 있을 것이고, 게시글이 있을 것이다. 뿐만 아니라 해당 글을 작성한 사용자도 있을 것
앞선 JPA 사용법에 관련하여 기본적인 사용법을 다뤘었는데, 기본적인 메소드만 사용하여 프로그램을 개발하기는 한계가 있다.JpaRepository에 커스텀 쿼리를 추가하여 사용하는 방법을 알아보자.아래는 이 시리즈에서 계속 사용하던 테스트 코드를 기반으로 작성되었다.기
QueryDSL -- Spring에서 애플리케이션과 데이터베이스간의 소통을 위해 SQL을 직접적으로 사용하는 MyBatis와 MyBatis의 단점을 보완해 데이터를 객체로 보는 ORM 방식을 사용하는 인터페이스인 JPA 두가지 방식이 있다. 그 중 JPA의 가장 큰
본 게시글은 Spring Boot 3.x 버전 이상, QueryDSL 5.x 버전 이상을 기준으로 작성된다.Build 도구는 Gradle을 사용한다.스프링부트 2.x 버전을 사용한다면 QueryDSL 버전도 다르게 사용해야 하며 세팅방법도 다르다.여기서 지정한 경로는
Entity 연관관계 매핑하기 -- 이전에 Entity의 단방향/양방향 연관관계에 대해 알아봤었는데 이번에는 실제로 연관관계를 어떻게 맺는지를 알아보자. 아래의 예시들은 단방향 매핑을 기준으로 작성되었다. 1:N 매핑 (@OneToMany) -- 단방향 지난
JSON 직렬화 속성명 커스텀 설정하기API 개발 도중 특이한 현상을 마주했다. 아래와 같이 MenuEntity가 있다고 가정했을 때, Menu를 조회하는 요청을 보냈더니 응답이 이상하게 왔다.isUsed 속성의 이름에서 is가 빠져서 왔다. 이 뿐만이 아니라 다른 속