본문 바로가기

JPA5

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