더 큰 Spring Data 제품군의 일부인 Spring Data JPA를 사용하면 JPA 기반 리포지토리를 쉽게 구현할 수 있습니다. 이 모듈에서는 JPA 기반 데이터 액세스 계층에 대한 향상된 지원을 다룹니다. 데이터 액세스 기술을 사용하는 Spring 기반 애플리케이션을 더 쉽게 구축할 수 있습니다.
애플리케이션의 데이터 액세스 계층을 구현하는 것은 꽤 오랫동안 번거로운 작업이었습니다. 간단한 쿼리를 실행하고 페이지 매김 및 감사를 수행하려면 너무 많은 상용구 코드를 작성해야 합니다. Spring Data JPA는 실제로 필요한 만큼의 노력을 줄여 데이터 액세스 계층 구현을 크게 개선하는 것을 목표로 합니다. 개발자로서 사용자 정의 파인더 메소드를 포함하여 저장소 인터페이스를 작성하면 Spring이 자동으로 구현을 제공합니다.
JPA 엔터티를 위한 CRUD 방법 구현
쿼리 메서드 이름에서 동적 쿼리 생성
쿼리 메소드를 통한 JPA NamedQueries의 투명한 트리거링
기본 속성을 제공하는 구현 도메인 기본 클래스
투명한 감사 지원(생성, 최종 변경)
맞춤형 저장소 코드 통합 가능성
사용자 정의 네임스페이스와 손쉬운 Spring 통합
이 프로젝트는 Spring Code of Conduct를 따릅니다. 참여함으로써 귀하는 본 행동 강령을 준수해야 합니다. 용납할 수 없는 행동을 [email protected]로 보고해 주세요.
다음은 Java에서 Spring 데이터 저장소를 사용하는 애플리케이션에 대한 간단한 티저입니다.
public interface PersonRepository extends CrudRepository < Person , Long > {
List < Person > findByLastname ( String lastname );
List < Person > findByFirstnameLike ( String firstname );
}
@ Service
public class MyService {
private final PersonRepository repository ;
public MyService ( PersonRepository repository ) {
this . repository = repository ;
}
public void doWork () {
repository . deleteAll ();
Person person = new Person ();
person . setFirstname ( "Oliver" );
person . setLastname ( "Gierke" );
repository . save ( person );
List < Person > lastNameResults = repository . findByLastname ( "Gierke" );
List < Person > firstNameResults = repository . findByFirstnameLike ( "Oli%" );
}
}
@ Configuration
@ EnableJpaRepositories ( "com.acme.repositories" )
class AppConfig {
@ Bean
public DataSource dataSource () {
return new EmbeddedDatabaseBuilder (). setType ( EmbeddedDatabaseType . H2 ). build ();
}
@ Bean
public JpaTransactionManager transactionManager ( EntityManagerFactory emf ) {
return new JpaTransactionManager ( emf );
}
@ Bean
public JpaVendorAdapter jpaVendorAdapter () {
HibernateJpaVendorAdapter jpaVendorAdapter = new HibernateJpaVendorAdapter ();
jpaVendorAdapter . setDatabase ( Database . H2 );
jpaVendorAdapter . setGenerateDdl ( true );
return jpaVendorAdapter ;
}
@ Bean
public LocalContainerEntityManagerFactoryBean entityManagerFactory () {
LocalContainerEntityManagerFactoryBean lemfb = new LocalContainerEntityManagerFactoryBean ();
lemfb . setDataSource ( dataSource ());
lemfb . setJpaVendorAdapter ( jpaVendorAdapter ());
lemfb . setPackagesToScan ( "com.acme" );
return lemfb ;
}
}
Maven 종속성을 추가합니다.
< dependency >
< groupId >org.springframework.data</ groupId >
< artifactId >spring-data-jpa</ artifactId >
< version >${version}</ version >
</ dependency >
다가오는 주요 버전의 최신 스냅샷을 원한다면 Maven 스냅샷 저장소를 사용하고 적절한 종속성 버전을 선언하세요.
< dependency >
< groupId >org.springframework.data</ groupId >
< artifactId >spring-data-jpa</ artifactId >
< version >${version}-SNAPSHOT</ version >
</ dependency >
< repository >
< id >spring-snapshot</ id >
< name >Spring Snapshot Repository</ name >
< url >https://repo.spring.io/snapshot</ url >
</ repository >
스프링 데이터에 문제가 있나요? 우리는 기꺼이 도와드리겠습니다!
참조 문서와 Javadoc을 확인하세요.
Spring 기본 사항 알아보기 – Spring Data는 Spring Framework를 기반으로 구축됩니다. spring.io 웹 사이트에서 풍부한 참조 문서를 확인하세요. Spring을 막 시작했다면 가이드 중 하나를 사용해 보세요.
업그레이드하는 경우 Spring Data JPA 릴리스 노트를 확인하고 고려 중인 항목으로 스크롤하세요. 자세한 내용은 여기를 참조하세요. (최신 안정 릴리스도 확인하세요)
질문하기 - spring-data-jpa
태그가 붙은 질문이 있는지 stackoverflow.com을 모니터링합니다. Gitter에서 커뮤니티와 채팅할 수도 있습니다.
GitHub 문제 추적기에서 Spring Data JPA로 버그를 보고하세요.
Spring Data는 버그 및 기능 요청을 기록하기 위해 GitHub를 문제 추적 시스템으로 사용합니다. 문제를 제기하려면 아래 권장 사항을 따르십시오.
버그를 기록하기 전에 이슈 트래커를 검색하여 누군가 이미 문제를 보고했는지 확인하세요.
문제가 아직 존재하지 않는 경우 새 문제를 만듭니다.
문제 보고서에 최대한 많은 정보를 제공해주세요. 사용 중인 Spring Data 버전과 JVM 버전, 전체 스택 추적 및 관련 구성 정보를 알고 싶습니다.
코드를 붙여넣거나 스택 추적 형식을 포함해야 하는 경우 삼중 백틱을 사용하여 코드로 형식을 지정하세요.
가능하다면 문제를 복제하는 테스트 사례나 프로젝트를 만들어 보십시오. 코드 또는 코드가 포함된 압축 파일에 대한 링크를 첨부하세요. 가능하면 메모리 내 데이터베이스를 사용하거나 Testcontainers를 사용하여 데이터베이스를 설정하세요.
Spring Data(repo.spring.io의 바이너리)를 사용하기 위해 소스에서 빌드할 필요는 없지만, 가장 뛰어난 최신 기능을 시험해보고 싶다면 Maven 래퍼를 사용하여 Spring Data를 쉽게 빌드할 수 있습니다. JDK 17 이상이 필요합니다.
$ ./mvnw clean install
일반 mvn
명령을 사용하여 빌드하려면 Maven v3.8.0 이상이 필요합니다.
끌어오기 요청을 제출하려면 CONTRIBUTING.adoc를 참조하세요. 특히 첫 번째 중요 변경 사항을 적용하기 전에 기여자 계약에 서명하세요.
문서를 빌드하면 테스트를 실행하지 않고도 프로젝트도 빌드됩니다.
$ ./mvnw clean install -Pantora
생성된 문서는 target/antora/site/index.html
에서 사용할 수 있습니다.
spring.io 사이트에는 Spring Data를 단계별로 사용하는 방법을 보여주는 여러 가이드가 포함되어 있습니다.
JPA를 사용하여 데이터 액세스: Spring Data JPA를 사용하여 JPA 데이터 지속성 작업 방법을 알아보세요.
REST를 사용하여 JPA 데이터에 액세스하는 방법은 리포지토리를 통해 JPA에 저장된 데이터를 노출하는 REST 웹 서비스를 만드는 방법에 대한 가이드입니다.
Spring 데이터 예제에는 특정 기능을 더 자세히 설명하는 예제 프로젝트가 포함되어 있습니다.
Spring Data JPA는 Apache 2.0 라이센스에 따라 출시된 오픈 소스 소프트웨어입니다.