Spring Boot/Spring Data JPA(36)
-
Customizing Individual Repositories
Spring Data JPA 커스텀 리포지토리 🧩“Repository는 왜 Fragment(조각)로 조립되는가?”Spring Data Repository는 겉으로는 UserRepository extends JpaRepository 같은 “인터페이스” 하나로 끝나는 것처럼 보이지만, 내부적으로는 여러 조각(Fragment) 을 모아 만든 합성(Composition) 프록시입니다.여기서 말하는 Fragment는 크게 세 종류입니다:✅ Base Repository (예: SimpleJpaRepository 기반 CRUD 구현)✅ Repository Aspects (예: Querydsl, QBE 같은 기능 조각)✅ Custom Fragment Interfaces + Implementations (우리가 직접 ..
2026.02.10 -
Spring Data
✅ Spring Data가 지원하는 기술Spring Data는 ORM (JPA) 뿐만 아니라 NoSQL 데이터베이스도 지원합니다.즉, 관계형 데이터베이스(RDBMS)와 비관계형 데이터베이스(NoSQL)를 모두 쉽게 사용할 수 있도록 해줍니다. 🚀📌 1. Spring Data가 지원하는 주요 데이터 저장소Spring Data는 JPA 기반 ORM뿐만 아니라 다양한 데이터 저장소를 지원합니다.🔹 1) 관계형 데이터베이스 (RDBMS)✅ Spring Data JPA → Hibernate, EclipseLink, OpenJPA 등 ORM 프레임워크와 함께 사용✅ Spring Data JDBC → JPA보다 가벼운 방식으로 JDBC API를 직접 활용기술설명Spring Data JPAHibernate 등의 ..
2025.03.07 -
Spring Data JPA
JPASection SummaryGetting StartedCore conceptsDefining Repository InterfacesConfigurationPersisting EntitiesDefining Query MethodsJPA Query Methods ProjectionsStored ProceduresSpecificationsQuery by ExampleTransactionalityLockingAuditingMerging persistence unitsCDI IntegrationCustom Repository ImplementationsPublishing Events from Aggregate RootsNull Handling of Repository MethodsSpring Data Ext..
2024.10.24 -
JPA Query Methods
이 섹션에서는 Spring Data JPA를 사용하여 쿼리를 만드는 다양한 방법을 설명합니다.Query Lookup StrategiesQuery CreationUsing JPA Named QueriesUsing @QueryUsing Sort, Scrolling Large Query ResultsUsing Named ParametersOther Methods, Modifying QueriesApplying Query HintsConfiguring Fetch- and LoadGraphsScrolling 출처 : https://docs.spring.io/spring-data/jpa/reference/jpa/query-methods.html
2024.10.23 -
Auditing
Spring Data JPA는 엔티티가 언제, 누구에 의해 생성되거나 수정되었는지를 투명하게 추적할 수 있도록 고급 지원을 제공합니다. 이를 위해 엔티티 클래스에 감사 메타데이터를 추가해야 하며, 이 메타데이터는 어노테이션을 사용하거나 인터페이스를 구현하여 정의할 수 있습니다. 또한 감사 기능을 활성화하려면 어노테이션 구성 또는 XML 구성을 통해 필요한 인프라 구성 요소를 등록해야 합니다.Annotation-based Auditing MetadataSpring Data JPA에서는 @CreatedBy, @LastModifiedBy, @CreatedDate, @LastModifiedDate 어노테이션을 사용하여 엔티티의 생성자와 수정자, 그리고 변경 시점을 캡처할 수 있습니다.예시: 감사 메타데이터가 포..
2024.10.22 -
OPTIMISTIC, OPTIMISTIC_FORCE_INCREMENT
LockModeType.OPTIMISTICLockModeType.OPTIMISTIC은 데이터베이스에서 사용하는 비관적 잠금과 대조되는 낙관적 잠금 전략입니다. 이 전략은 데이터의 동시성을 높이면서도 데이터의 무결성을 보장하기 위해 사용됩니다. 아래에서 LockModeType.OPTIMISTIC에 대해 설명하겠습니다.OPTIMISTIC (낙관적 잠금)정의낙관적 잠금은 데이터에 대한 작업을 수행할 때, 다른 트랜잭션이 해당 데이터를 수정하지 않을 것이라고 가정하는 방식입니다. 즉, 데이터의 변경을 시도할 때까지 잠금을 사용하지 않으며, 최종적으로 데이터베이스에 변경을 적용할 때 충돌 여부를 확인합니다.사용 목적동시성 향상: 여러 트랜잭션이 동시에 같은 데이터에 접근할 수 있도록 하여 성능을 높입니다.충돌 감..
2024.10.22