[TIL] 240509

Geehyun(장지현)·2024년 5월 9일

TIL

목록 보기
69/70
post-thumbnail

Today

  • thymeleaf 계속해서 실습증
  • Spring Data JPA (Java Persistence API)
    특징으로는, 아래와 같이 있다.
    • Java 영속 영역(데이터 베이스)를 처리하는 API
    • Spring Data JPA 라이브러리 이용
    • JPA 단독 개발시 보다 코딩양이 줄어듬
    • ORM(Object Relational Mapping)
  • JPA
    • 객체 지향을 이용하여 영속계층(데이터베이스 영역)을 처리하는 것 담당
    • 엔티티 객체 -> 데이터(VO/DTO) -> JPA -> 데이터베이스 연동
    • Spring DATA JPA
      -> 엔티티 객체를 이용하여 JPA 처리하기 위한 라이브러리 제공
      -> 자동으로 객체를 생성, 처리 -> JPARepository
  • 엔티티 객체(클래스) = VO클리스와 동일
    - 엔티티 클래스명으로 테이블 생성 -> @Table(name="테이블명")
    • PK(기본키)를 가지는 자바 객체 (ex: idx, user_id)
    • @Id를 이용하여 객체 구분, 관리 함
    • 변경을 최소화 하게끔 설계하는 것이 중요
  • 엔티티 클래스 생성/동작 방식
    - 해당 클래스명의 (@Table) 테이블이 없으면 자동 새로 생성 (또는 있는데 좀 다르면 ALTER TABLE 시킴)
    • @Entity 필수
    • @Id 필수 -> 엔티티 객체 구분에 사용
    • 키 생성 전략(Key generate Strategy)
      -> GenerationType.IDENTITY -> 데이터베이스에서 자동 생성 -> AUtO_INCREMENT와 동일
    • IDENTITY : 데이터베이스에 위임
      • MySQL/MariaDB/MSSQL - auto_INCREMENT
      • 오라클 : SEQUENCE 사용 -> @SequenceGenerator 필요
    • AUTO : DBMS 따라 지정, 기본값(DBMS별 구문 차이)
    • TABLE : 키 생성용 테이블 사용, 모든 DB동일하게 사용 -> @TableGenerator 필요
  • Querydsl JPA Support » 5.1.0
    Querydsl APT Support » 5.1.0
    Jakarta Annotations API » 3.0.0
    Jakarta Persistence API » 3.1.0
// Querydsl 사용 설정 부분
implementation 'jakarta.annotation:jakarta.annotation-api'
implementation 'com.querydsl:querydsl-jpa:5.1.0:jakarta'
annotationProcessor 'com.querydsl:querydsl-apt:5.1.0:jakarta'


... dependencies 바깥에 아래 내용 추가
sourceSets {
	main {
		java {
			srcDirs = [
			        "$projectDir/src/main/java", "$buildDir/generated/querydsl"
			]
		}
	}
}
  1. 위처럼 jakarta버전으로 바꿔줘야함 (내 버전에 맞추기 위해서)
  2. jakarta.annotation은 버전 지워버림 (알아서 최신 버전으로 가져오게)
  3. apt는 annotationProcessor 으로 변경 / jakarta.annotation annotationProcessor 추가
  4. jakarta.persistence 갖고와서 버전 지우고 annotationProcessor으로 변경

Review

  • Spring boot로 간단하게 게시판 test 코드를 작성해서 테스트해봤다.
  • Mapper를 따로 다 작성하지 않아도 되서 간편하나, 아직 사용법에 대해 이해가 다소 부족하여 공부가 필요할듯 하다.
  • 당장 다음주 월요일부터 개인시간에 개인 플젝 진행필요... 퍼블 부터 해야하니 빠른 준비가 필요할듯
profile
블로그 이전 했습니다. 아래 블로그 아이콘(🏠) 눌러서 놀러오세요

0개의 댓글