BE/스프링
-
JPA AuditingBE/스프링 2024. 11. 14. 17:35
JPA Auditing이란?엔티티의 생성, 수정과 관련된 메타 데이터를 자동으로 관리하기 위한 기능예를 들어, 엔티티가 생성된 시각, 마지막으로 수정된 시각, 생성한 사용자, 수정한 사용자 등의 정보를 데이터베이스에 자동으로 기록 데이터가 변경되는 시점 감지데이터 변경 시 자동으로 이력 기록 (created_at, created_by...)엔티티 클래스에 어노테이션 추가하여 사용 1. Gradle에 의존성 추가dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa'} 2. Spring Boot 애플리케이션 @EnableJpaAuditing 추가@SpringBootApplication@EnableJpa..
-
QueryDSL + ProjectionBE/스프링 2024. 11. 13. 22:43
QueryDSL이란?데이터베이스와 애플리케이션 간의 데이터를 안전하고 편리하게 주고받기 위한 Java 라이브러리데이터베이스 쿼리를 문자열 대신 코드로 작성할 수 있어 타입 안전성을 보장하고, 쿼리 작성 시 문법 오류를 컴파일 시점에 미리 발견할 수 있다는 것이 장점 QueryDSL의 필요성 기존의 Java ORM(객체-관계 매핑) 프레임워크인 JPA와 Hibernate는 SQL과 유사한 HQL(JPQL)을 사용해 쿼리를 작성하는데JPQL은 문자열로 쿼리를 작성하다 보니 오타를 쉽게 놓칠 수 있고, 쿼리 오류는 애플리케이션을 실행할 때 비로소 발견될 수 있어 위험할 수 있음. -> QueryDSL은 엔티티에 기반한 Q 클래스를 자동 생성하여 쿼리를 코드로 작성하게 해주어 오타나 잘못된 타입을 사용하면 ..
-
JPA : Entity 연관 관계 / @JoinColumnBE/스프링 2024. 11. 4. 22:05
JPA 엔티티 간의 연관 관계JPA에서는 객체 간의 다양한 연관관계를 설정할 수 있으며, 각 연관관계는 주인 엔티티와 외래 키(FK)의 위치에 따라 결정 1:1 관계 (One-to-One): 한 엔티티가 다른 엔티티와 1:1로 매핑되는 관계1:N 관계 (One-to-Many): 한 엔티티가 여러 엔티티와 매핑되는 관계N:1 관계 (Many-to-One): 여러 엔티티가 한 엔티티와 매핑되는 관계N:M 관계 (Many-to-Many): 여러 엔티티가 서로 여러 엔티티와 매핑되는 관계 연관관계JPA Annotation1:1@OneToOne1:N@OneToManyN:1@ManyToOneN:M@ManyToMany 1. 1:1 (One-to-One) 관계 1:1 관계에서는 외래 키를 어느 테이블에 두..