본문 바로가기
반응형

JPA3

Spring-Data-Jpa 참고: 최근 IntelliJ 버전은 Gradle로 실행을 하는 것이 기본 설정이다. 이렇게 하면 실행속도가 느리다. 다음과 같이 변경하면 자바로 바로 실행하므로 좀 더 빨라진다. Preferences Build, Execution, Deployment Build Tools Gradle Build and run using: Gradle -> IntelliJ IDEA Run tests using: Gradle -> IntelliJ IDEA 롬복 적용 Preferences - plugin - lombok 검색 실행 (재시작) Preferences - Annotation Processors 검색 - Enable annotation processing 체크 (재시작) 임의의 테스트 클래스를 만들고 @Getter,.. 2021. 8. 6.
Envers / spring-data-envers 개요 Envers 모듈은 Hibernate 및 JPA와 함께 작동하는 핵심 Hibernate 모델입니다. Envers 모듈은 엔티티 클래스를위한 쉬운 감사 / 버전 관리 솔루션을 제공하는 것을 목표로합니다. 하이버네이트 핵심 모듈 JPA 스펙에 정의된 모든 매핑 감사 엔티티의 변경 이력을 자동 관리 트랜잭션 단위의 통합 Revision 관리 (Snapshot) REVINFO 테이블은 revision_id 와 Timestamp만 가지고 있고, 이력 테이블은 별도로 존재함. 한 트랜잭션 내에서 발생한 변경사항을 revision_id 1이라는 이력으로 여러 이력테이블에 각각 저장, revision_id 1인 항목의 해당 트랜잭션에서 변경된 모든 이력을 감사(audit)가능함 의존성 implementation(.. 2021. 8. 3.
JPA 상속 관계 (TABLE_PER_CLASS전략) 배치 스케줄을 JPA로 리팩토링하는 과정 중, 스키마가 동일한 Table 4개가 있어 @Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)으로 abstract 부모 클래스를 만들어 작업? 해보기로 했다. (일반적으로 SINGLE_TABLE/JOINED 전략이 더 권장되지만, 이미 생성된 테이블이므로..) 같은 스키마와, 같은 역할을 하는 테이블이기에 generic을 이용해 JpaRepository를 하나만 생성하도록 꼼수?를 부려봤다. 어림없지Service도 jeneric으로 생성하여 중복 코드를 줄여보고자 했지만, 오히려 구조만 어려워지고, 결과적으론 JpaRepository부터 generic생성을 못하기 때문에 포기하였다. 다른 패턴으로 해결 할 수 있.. 2021. 5. 21.
728x90
반응형