https://sundaland.tistory.com/406 [ ▶ Query Creation ] Spring Data JPA의 Query Creation 기능은 개발자가 리포지토리에서 엔티티에 대한 쿼리를 생성할 수 있도록 지원하는 강력한 도구이다. 이 기능은 메서드 이름을 기반으로 쿼리를 동적으로 생성하는 방식으로, 복잡한 쿼리를 작성하는 데 필요한 코드를 줄여준다. [ ▷ 메서드 이름을 통한 쿼리 생성 ] ▼ PersonRepository라는 리포지토리 인터페이스에서 메서드 이름을 통해 여러 쿼리를 생성하는 예시interface PersonRepository extends Repository { // 이메일 주소와 성을 기준으로 Person 엔티티 검색 List findByEmailAdd..
전체 글
https://sundaland.tistory.com/413 [ ▶ Query Lookup Strategies ] JPA 모듈은 두 가지 방식으로 쿼리를 정의할 수 있다. 첫 번째는 쿼리를 문자열로 수동으로 정의하는 방식이고, 두 번째는 메서드 이름을 기반으로 파생된 쿼리를 사용하는 방식이다. [ ▷ 파생된 쿼리(Derived Queries) ]Spring Data JPA에서는 메서드 이름을 기반으로 자동으로 쿼리를 생성하는 기능을 제공한다. 예를 들어, findByFirstNameStartingWith 같은 메서드 이름을 정의하면 JPA는 자동으로 LIKE 연산자를 사용해 "FirstName"이 특정 문자열로 시작하는 레코드를 검색하는 쿼리를 생성한다. 이런 파생된 쿼리에서 사용할 수 있는 여러 가지..
https://sundaland.tistory.com/404 [ ▶ Defining Query Methods ] Spring Data에서는 리포지토리 프록시를 통해 메서드 이름을 기반으로 데이터 저장소에 맞는 쿼리를 생성하는 두 가지 주요 접근 방식을 제공한다. [ ▷ 메서드 이름에서 쿼리 파생 ]직접적인 메서드 이름 파생: 이 접근 방식에서는 Spring Data가 리포지토리 인터페이스의 메서드 이름을 분석하여 자동으로 쿼리를 생성한다. 리포지토리에서 메서드를 정의할 때, Spring Data는 메서드 이름을 분석하여 실행할 적절한 쿼리를 생성한다. 명명 규칙: 메서드 이름은 공통 작업(find, read, delete 등)과 필터링 기준(속성 이름)으로 구성된 키워드를 사용하여 형성된다. findBy..
https://sundaland.tistory.com/403 [ ▶ Persisting Entities ][ ▷ Saving Entities (엔티티 저장) ] 엔티티를 저장하는 방법은 CrudRepository.save(…) 메서드를 사용하는 것이다. 이 메서드는 내부적으로 JPA의 EntityManager를 사용하여 주어진 엔티티를 저장하거나 병합한다. 만약 엔티티가 아직 영속화되지 않은 상태라면, entityManager.persist(…)를 호출하여 저장하고, 이미 영속화된 엔티티라면 entityManager.merge(…)를 호출하여 병합한다. [ ▷ Entity State-detection Strategies (엔티티 상태 감지 전략) ]△ Version-Property와 Id-Propert..
https://sundaland.tistory.com/402 [ ▶ Configuration ] Spring Data JPA를 설정하는 방법에는 두 가지가 있다.Annotation-based Configuration (Java configuration)Spring Namespace (XML configuration) [ ▷ Annotation-based Configuration (JavaConfig) ] Spring Data JPA 리포지토리 지원은 JavaConfig 또는 XML 네임스페이스를 사용하여 활성화할 수 있다. 아래는 JavaConfig를 사용하는 예시이다.@Configuration@EnableJpaRepositories@EnableTransactionManagementclass Applic..
https://sundaland.tistory.com/401[ ▶ Defining Repository Interfaces ][ ▷ Repository 인터페이스 정의하기 ] 먼저, 도메인 클래스에 특정한 Repository 인터페이스를 정의해야 한다. 이 인터페이스는 반드시 Repository를 확장해야 하며, 도메인 클래스와 해당 도메인 클래스의 ID 타입으로 지정해야 한다. 도메인 타입에 대해 CRUD(생성, 읽기, 업데이트, 삭제) 메서드를 노출하고 싶다면, CrudRepository 또는 그 변형 중 하나를 확장할 수 있다. [ ▷ Repository 정의 미세 조정 ]△ CrudRepository 확장 가장 일반적인 방법은 CrudRepository를 확장하는 것이다. 이 인터페이스를 사용하면..
https://sundaland.tistory.com/400[ ▶ Core concepts ][ ▷ Repository 인터페이스 ]중심 인터페이스: Spring Data 리포지토리 추상화의 중심 인터페이스는 Repository이다. 이 인터페이스는 관리할 도메인 클래스와 도메인 클래스의 identifier 타입을 제네릭 타입 파라미터로 받는다. 기본적으로 이 인터페이스는 마커 인터페이스로 사용되며, 작업할 타입을 캡처하고 이를 확장하는 인터페이스를 발견하는 데 도움을 준다.도메인 객체: Spring Data는 도메인 타입을 엔티티로 간주하며, 보다 구체적으로 집합체(aggregate)로 설명한다. 따라서 문서 전반에 걸쳐 "엔티티"라는 용어가 사용되며, 이는 "도메인 타입"이나 "집합체"와 상호 교환할..
https://sundaland.tistory.com/399 [ ▶ Getting Started ][ ▷ 시작하기 ]△ 프로젝트 생성start.spring.io: Spring이 제공하는 웹 기반 인터페이스로, Spring Boot 프로젝트를 신속하게 생성할 수 있다. 종속성을 선택하고 프로젝트 메타데이터(그룹 ID, 아티팩트 ID 및 버전 등)를 입력한 후, ZIP 파일 형식으로 프로젝트 구조를 다운로드할 수 있다.Spring Tools: Eclipse, IntelliJ 등에서 사용할 수 있는 IDE 플러그인으로, Spring 프로젝트를 생성하고 관리하는 데 도움을 준다. 최소한의 노력으로 Spring Boot 애플리케이션을 구성할 수 있는 내장 마법사를 제공한다.GitHub의 spring-data-ex..