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