JPA 설정하기 (Spring boot 기준)

2025. 3. 25. 13:18·JPA
목차
  1. JPA는 어떻게 설정할까?
  2. 의존성 추가 (Gradle)
  3. application.yml  (또는 application.properties) 설정
  4. JPA 사용해보기

 

 

 


 

JPA는 어떻게 설정할까?

 

 


 

 

 

 

의존성 추가 (Gradle)

 

--

build.gradle

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
    // JPA 라이브러리
    implementation 'org.postgresql:postgresql'
    // 사용할 DB
}

--

 

 

 

 

application.yml  (또는 application.properties) 설정

 

--

application.yml

spring:
  datasource:
    url: jdbc:postgresql://localhost:5432/mydatabase		# 연결할 DB url
    username: myuser						# DB 사용자 이름
    password: mypassword					# DB 비밀번호
    driver-class-name: org.postgresql.Driver			# 사용할 DB의 JDBC 드라이버

  jpa:
    hibernate:
      ddl-auto: update						# create, update, validate, none 설정 가능
    show-sql: true						# SQL 쿼리 출력 여부
    properties:
      hibernate:
        format_sql: true					# SQL을 보기 좋게 정렬
        dialect: org.hibernate.dialect.PostgreSQLDialect	# Hibernate가 사용할 SQL 문법 설정

 

사실상 필수는 url, username, password이며

 

driver-class-name: org.postgresql.Driver는

Spring Boot가 url을 보고 자동으로 적절한 드라이버로 로드하기 때문에 생략 가능하고,

 

hibernate.dialect: org.hibernate.dialect.PostgreSQLDialect도

url을 보고 자동으로 선택해 주지만 운영 환경에 따라 변수가 생길 수 있으니

명시적으로 직접 지정해주는 것이 더 안전하긴 하다.

 

그리고 나머지는 사용할 DB에 대한 부가적인 설정을 하는 것으로

하고자 하는 환경에 알맞게 설정해 주면 된다.

--

 

 

 

 

JPA 사용해보기

 

--

엔티티 (Entity)

엔티티는

데이터베이스의 테이블과 매핑되는 객체로

DB의 테이블 구조를 코드로 표현한 클래스다.

해당 객체는 DB의 테이블의 컬럼과 매핑되며, 데이터를 객체로 다룰 수 있도록 도와주고

JPA가 자동으로 SQL을 생성하고 실행할 수 있도록 도와준다.

 

Member.java

@Entity
public class Member {

    @Id
    private Long id;
    private String name;
}
@Entity  :  JPA가 관리할 객체
@Id   :   데이터베이스의 PK와 매핑

 

위 코드처럼 엔티티를 정의하면 DB의 테이블처럼 연결하여 사용할 수 있다.

 

Craete table Member (
    id bigint not null,
    name varchar(255),
    primary key (id)
);

 

 

 

리포지토리  (Repository)

JPA를 쉽게 사용할 수 있도록 JpaRepository를 상속받는 인터페이스로

엔티티를 DB에서 조회, 저장, 삭제하는 역할을 해준다.

즉, DB와 직접 통신하는 계층으로

SQL을 직접 작성하지 않고, JPA 메서드를 통해 자동으로 원하는 SQL을 실행해 준다.

 

UserRepository.java

public interface UserRepository extends JpaRepository<User, Long> {
    User findByEmail(String email);
}

위 코드는 아래와 같은 SQL문을 실행하는 메서드를 제공한다.

SELECT * FROM users WHERE email = ?;

 

사용 예시

User user = userRepository.findByEmail("aaa@gmail.com");

--

 

 

 

 

 

저작자표시 비영리 변경금지 (새창열림)

'JPA' 카테고리의 다른 글

상속관계 매핑 (+@MappedSuperclass)  (1) 2025.04.01
연관관계 매핑 (단방향, 양방향, 1:1, 1:N, N:1, N:N)  (0) 2025.03.31
엔티티(Entity) 매핑 (= 객체와 DB 테이블 연결)  (0) 2025.03.30
영속성 관리 (내부 동작 방식)  (0) 2025.03.29
JPA 개념  (0) 2023.12.30
  1. JPA는 어떻게 설정할까?
  2. 의존성 추가 (Gradle)
  3. application.yml  (또는 application.properties) 설정
  4. JPA 사용해보기
'JPA' 카테고리의 다른 글
  • 연관관계 매핑 (단방향, 양방향, 1:1, 1:N, N:1, N:N)
  • 엔티티(Entity) 매핑 (= 객체와 DB 테이블 연결)
  • 영속성 관리 (내부 동작 방식)
  • JPA 개념
아-니지
아-니지
아-니지
성장 기록.zip
아-니지
  • 분류 전체보기 (266)
    • Language (76)
      • Java (39)
      • Kotlin (0)
      • HTML (10)
      • CSS (17)
      • Java Script (10)
    • JPA (11)
    • Spring Boot (27)
    • QueryDSL (2)
    • SQL [DB] (8)
    • Docker (29)
    • AWS (19)
    • Git & GitHub (17)
    • DevOps (1)
    • Terminology (14)
    • CS (50)
      • 컴퓨터 구조 (12)
      • 운영체제 (11)
      • 자료구조 (11)
      • 알고리즘 (0)
      • 네트워크 (16)
    • Record (7)
      • 알고리즘 풀이 (4)
      • 자바 메서드 (3)
    • Self Q&A (5)
hELLO· Designed By정상우.v4.5.3
아-니지
JPA 설정하기 (Spring boot 기준)

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.