[JPA] Spring data jpa의 Auditing AuditEntityListener는 Spring data jpa에서 구현한 EntityListener이다. 쉽게말해 Java에서 ORM 기술은 JPA를 사용하여 도메인을 관계형 데이터베이스 테이블에 매핑할 때 공통적으로 도메인들이 가지고 있는 필드나 컬럼들이 존재합니다 대표적으로 새엇ㅇ일자 수정일자 식별자 같은 필드 및 컬럼이 있습니다. 도메인마다 공통으로 존재한다는 의미는 결국 코드가 중복된다는 말과 일맥상통 합니다. 그래서 JPA에서는 Audit 이라는 기능을 제공하고 있습니다. @PrePersist, @PreUpdate 설정을 통해 엔티티가 영속화 되기 이전에 AuditingHandler를 통해 생성일, 생성자, 수정일, 수정자를 자동으로 찾아서 설정한다. | Audit이란? Spring Data..
썸네일 [JPA] JPA기본 정리 및 메서드 종류 JPA의 엔티티 매니저가 활성된 상태로(Spring Data JPA)를 사용하면 기본옵션이다. 트랜잭션 안에서 데이터베이스에서 데이터를 가져오면 이 데이터는 영속성 컨텍스트가 유지된 상태라고 한다. 이 상탱서 해당 데이터의 값을 변경하면 트랜잭션이 끝나는 시점에 해당 테이블에 변경분을 반영한다. 즉 Entity 객체의 값만 변경하면 별도로 Update 쿼리를 날릴 필요가 없습니다. Repositroy 구현 시 JpaRepository interface를 상솓 받으면 된다. -JpaRepositroy의 제네릭 타입에는 Entity 클래스와 PK의 타입을 명시해주면 된다. -CRUD작업이 간편하다 일반적으로 많이 사용하는 데이터 조작을 다루는 함수가 정의되어 있기 때문이다. JPA사용 시 @NoArgsCon..
[JPA]@Id와@GeneratedValue 기본키 전략 | JPA 기본 키 전략 1. 직접 할당 @id 애노테이션으로 필드와 매핑한다. 자바 기본형, 래퍼형, String, Date, BigDecimal, BigInteger가 타입이 가능하다 2. IDENTITY 기본 키 생성을 데이타베이스에 위임한다. 데이타베이스의 auto_increment와 같은 기능을 사용할 때 쓴다. 키 필드에 @GeneratedValue(strategy = GenerationType.IDENTITY)를 사용한다. 이 전략을 사용하면 JPA는 기본 키 값을 얻어오기 위해 데이타베이스를 추가로 조회한다. 따라서 이 전략을 사용하는 엔티티를 새로 생성하여 식별자 값을 할당하려면 1차 캐시를 넘어서 데이타베이스에서 Insert한 후에 기본 키 값을 조회한다. 즉, persist()를 호출..