Spring Boot/Spring Data JPA(33)
-
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
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 -
PESSIMISTIC_READ, PESSIMISTIC_WRITE
PESSIMISTIC_READ비관적 읽기 잠금(Pessimistic Read Lock)은 데이터베이스에서 데이터의 일관성과 무결성을 보장하기 위해 사용되는 잠금 전략 중 하나입니다. 이 잠금 방식은 다른 트랜잭션이 데이터를 수정할 수 없도록 하여 읽기 작업 중에 데이터의 변경을 방지합니다. 아래에서 비관적 읽기 잠금에 대해 설명하겠습니다.비관적 읽기 잠금(Pessimistic Read Lock)비관적 읽기 잠금은 주로 다음과 같은 경우에 사용됩니다:동시성 제어: 여러 트랜잭션이 동시에 같은 데이터를 읽거나 쓸 수 있는 경우, 데이터의 일관성을 유지하기 위해 비관적 잠금을 사용합니다. 이 잠금 방식은 데이터의 무결성을 유지하기 위해 다른 트랜잭션의 수정 작업을 차단합니다.데이터 충돌 예방: 데이터 변경이 ..
2024.10.22 -
Locking
Locking은 데이터베이스에서 동시성을 관리하는 중요한 메커니즘으로, 여러 트랜잭션이 데이터에 접근할 때 데이터 무결성을 보장하기 위해 사용됩니다. Spring Data JPA에서는 @Lock 어노테이션을 사용하여 쿼리 메서드나 CRUD 메서드에 잠금 모드를 지정할 수 있습니다. 아래에서 이를 자세히 설명하겠습니다.1. 쿼리 메서드에서 Lock 모드 정의하기쿼리 메서드에 @Lock 어노테이션을 사용하여 사용할 잠금 모드를 지정할 수 있습니다. 예를 들어, LockModeType.READ를 사용하면 해당 쿼리가 읽기 전용 잠금으로 실행됩니다. 이렇게 하면 다른 트랜잭션에서 동일한 데이터에 대한 변경 작업을 할 수 없게 되어, 데이터 무결성이 유지됩니다.예시 1: 쿼리 메서드에서 Lock 메타데이터 정의하..
2024.10.22