Auditing 어노테이션
1. Auditing이란 엔티티가 생성되거나 수정된 시간, 그 주체를 자동으로 기록하는 것이 Auditing(감사)이다. 모든 테이블에 created_at, updated_at을 넣는 것은 운영 시 문제 추적을 위해 실무에서 거의 필수로 사용된다. Spring Data JPA의 Auditing 기능을 사용하면 이를 자동으로 처리할 수 있다. 2. 기본...
1. Auditing이란 엔티티가 생성되거나 수정된 시간, 그 주체를 자동으로 기록하는 것이 Auditing(감사)이다. 모든 테이블에 created_at, updated_at을 넣는 것은 운영 시 문제 추적을 위해 실무에서 거의 필수로 사용된다. Spring Data JPA의 Auditing 기능을 사용하면 이를 자동으로 처리할 수 있다. 2. 기본...
1. 왜 상속 매핑이 필요한가 객체지향에서는 상속이 자연스러운 개념이다. 그런데 RDB에는 상속 개념이 없다. JPA는 이 불일치를 3가지 전략으로 해결한다. 1 2 3 4 5 // 객체 모델 abstract class Item { Long id; String name; int price; } class Album extends Item { Strin...
1. 왜 임베디드 타입이 필요한가 엔티티를 설계하다 보면 특정 필드들이 논리적으로 하나의 개념을 나타내는 경우가 있다. 주소를 예로 들면 city, street, zipcode는 각각의 필드이지만 이 셋이 합쳐야 “주소”라는 개념이 된다. 이 필드들을 엔티티 안에 모두 나열하면 엔티티가 비대해지고 재사용도 어렵다. 1 2 3 4 5 6 7 8 9 10...
1. @Enumerated 자바의 enum 타입을 DB 컬럼에 매핑한다. 두 가지 방식이 있으며 반드시 STRING 방식을 사용해야 한다. 1 2 3 public enum MemberStatus { ACTIVE, INACTIVE, BANNED } ORDINAL 방식 — 절대 사용하지 말 것 1 2 3 @Enumerated(EnumType.ORDINAL...
1. @Entity @Entity는 해당 클래스가 JPA가 관리하는 엔티티임을 선언하는 어노테이션이다. 이 어노테이션이 붙어야만 JPA가 이 클래스를 인식하고 DB 테이블과 매핑한다. 📌 반드시 지켜야 할 제약 기본 생성자가 필수다. JPA는 DB에서 조회한 결과를 엔티티 객체로 변환할 때 내부적으로 리플렉션(Reflection)을 사용한다. 이 과정...