본문 바로가기

jpa3

스프링 JPA 과 pk값이 여러 컬럼인(복합키) 테이블 연결하기 - jpa DB와 연결 스프링간의 연결을 쉽게 만들어주는 JPA는 일반적으로 다음과 같이 사용한다. 1. DB의 테이블을 나타내는 Entity 클래스 생성. 컬럼값을 값으로 받기 위한 필드값을 생성해야 한다. 2. JpaRepository 인터페이스를 상속받는 인터페이스를 생성한다. 3. JpaRepository 제네릭에 1에서 생성한 엔티티 클래스와 pk와 연동되는 필드값의 데이터 타입을 입력한다. 그러나 pk값이 하나의 컬럼으로 설정된 테이블이 아닌, 여러 컬럼이 합쳐진 형태로 존재하는 테이블은 1번 엔티티 클래스 생성부터 방식이 다르다. 1. 엔티티 클래스 생성 기존에 pk값은 Long 이나 String 같은 기본 타입으로 표현 가능했으나, 컬럼이 여러개로 이뤄진 pk값은 이것이 불가능하다. 따라서 pk값을 .. 2024. 2. 28.
JPA 사용법(2) -- JPQL JPQL이란? SQL을 자바에서 사용할수 있게끔 변환된 SQL. JPA는 테이블이 아닌 엔티티 객체를 중심으로 개발하기 때문에 쿼리문을 사용하지 않는다. 그러나 어찌되었건 특정 데이터를 검색하기 위해서는 쿼리문의 역할을 해줄 것이 필요한데, JPA에서는 이를 위해 JPQL을 제공한다. JPQL은 객체를 대상으로, SQL은 테이블을 대상으로 쿼리한다는 것이 차이점이다. 특징 1. 엔티티와 속성은 대소문자를 구분하지만, 키워드는 구분하지 않는다. 예) select m from Member as m where m.age > 18 SELECT m FROM Member as m WHERE m.age > 18 둘 모두 동일하게 작동한다. 2. 테이블이 아닌 엔티티 객체 이름을 사용하며, 마찬가지로 컬럼이 아닌 필드.. 2023. 1. 26.
JPA 사용법(1) -- JPA 사용법 JPA란? 자바와 관계지향 데이터베이스간의 언어적인 차이를 해소시키기 위한 api. 관계지향적인 DB를 객체지향적으로 해석해주며, 객체지향적인 JAVA를 관계지향적으로 변환해주는 일종의 번역기 역할을 한다고 생각하면 된다. JDBC와의 차이 JDBC는 데이터베이스와 소통하기 위한 api이고, JPA는 소통하는 관계지향적 db를 객체지향적으로 바꾸는 api로 기술적인 개념이라고 봐야한다. 형식(이미 db에 만들어진 테이블이 있다고 가정하겠다) 1. 테이블과 1:1대응될 테이블과 이름이 같은 Entity클래스를 하나 만든다. package com.study.springboot; import jakarta.persistence.*; import lombok.AllArgsConstructor; import lo.. 2023. 1. 26.