Spring Data JPA

Spring Data - JPA

Spring JPA is part of the umbrella Spring Data project that makes it easy to easily implement JPA based repositories.

There are now a few books that cover Spring Data JPA. Spring Data: Modern Data Access for Enterprise Java and Spring Data

#maven

Implementing a data access layer of an application has been cumbersome for quite a while. Too much boilerplate code has to be written to execute simple queries as well as perform pagination, and auditing. Spring JPA aims to significantly improve the implementation of data access layers by reducing the effort to the amount that's actually needed. As a developer you write your repository interfaces, including custom finder methods, and Spring will provide the implementation automatically. (Note, this approach is not limited to JPA and has been applied to other persistance stores such as MongoDB and Neo4j as part of the Spring MongoDB and Spring Neo4j projects).

Spring JPA also takes the concept of a specification from Eric Evans' book Domain Driven Design, that carries the same semantics and provides an API to define such Specifications using the JPA criteria API.

Note, this project evolved out of the Hades open source project.

Features

  • Sophisticated support to build repositories based on Spring and JPA
  • Support for QueryDSL predicates and thus type-safe JPA queries
  • Transparent auditing of domain class
  • Pagination support, dynamic query execution, ability to integrate custom data access code
  • Validation of @Query annotated queries at bootstrap time
  • Support for XML based entity mapping
  • JavaConfig based repository configuration by introducing @EnableJpaRepositories

Latest News

 

Resources

Javadocs HTML
Reference Documentation HTML | PDF
Issue Tracking https://jira.springframework.org/browse/DATAJPA
Source Control https://github.com/SpringSource/spring-data-jpa
Source Code Browsing https://fisheye.springsource.org/browse/datajpa
CI Build http://build.springsource.org/browse/SPRINGDATA-DATAJPA

 

Maven Artifacts

Releases

Here is the dependency:

<dependency>
 <groupId>org.springframework.data</groupId>
 <artifactId>spring-data-jpa</artifactId>
 <version>1.3.1.RELEASE</version>
</dependency> 

Milestones

No milestone releases for the next major version available yet.

 

Maven Snapshot Repository
<repository>
 <id>spring-snapshot</id>
 <name>Spring Maven SNAPSHOT Repository</name>
 <url>http://repo.springsource.org/libs-snapshot</url>
</repository>
Maven Snapshot Dependency
<dependency>
 <groupId>org.springframework.data</groupId>
 <artifactId>spring-data-jpa</artifactId>
 <version>1.4.0.BUILD-SNAPSHOT</version>
</dependency> 

 

Reference Manual (HTML | PDF)
Javadocs

Spring Data

Spring Data makes it easier to build Spring-powered applications that use new data access technologies such as non-relational databases, map-reduce frameworks, and cloud based data services as well as provide improved support for relational database technologies.

Spring Data is an umbrella open source project which contains many subprojects that are specific to a given database. The projects are developed by working together with many of the companies and developers that are behind these exciting technologies.

Now available from O'Reilly Media is the book:

Spring Data: Modern Data Access for Enterprise Java.

 Spring Data

Spring Data Projects:

Category Sub-project  
Relational Databases JPA Spring Data JPA - Simplifies the development of creating a JPA-based data access layer
  JDBC Extensions Support for Oracle RAC, Advanced Queuing, and Advanced datatypes. Support for using QueryDSL with JdbcTemplate.
     
Big Data Apache Hadoop The Apache Hadoop project is an open-source implementation of frameworks for reliable, scalable, distributed computing and data storage.
     
Data-Grid GemFire VMware vFabric GemFire is a distributed data management platform providing dynamic scalability, high performance, and database-like persistence. It blends advanced techniques like replication, partitioning, data-aware routing, and continuous querying.
     
HTTP REST Spring Data REST - Perform CRUD operations of your persistence model using HTTP and Spring Data Repositories.
     
Key Value Stores Redis Redis is an open source, advanced key-value store.
     
Document Stores MongoDB MongoDB is a scalable, high-performance, open source, document-oriented database.
     
Graph Databases Neo4j Neo4j is a graph database, a fully transactional database that stores data structured as graphs.
     
Column Stores HBase Apache HBase is an open-source, distributed, versioned, column-oriented store modeled after Google' Bigtable. HBase functionality is part of the Spring for Apache Hadoop project.
     
Common Infrastructure Commons Provides shared infrastructure for use across various data access projects. General support for cross-database persistence is located here
     

Community-driven projects:

Sub-project  
Spring Data Solr Spring Data repositories abstraction for Apache Solr
Spring Data Elasticsearch Spring Data repositories abstraction for Elasticsearch
Spring Data Couchbase Spring Data repositories abstraction for Couchbase
Spring Data FuzzyDB Spring Data repositories abstraction for FuzzyDB

Attic

The Attic contains links to Spring Data projects that are no longer maintained.

Participation

Please reach out on the forums or JIRA with specific questions,requests, and expressing interest to participate in development on github at http://github.com/SpringSource.

Twitter

Follow SpringData on Twitter: SpringData

Follow the team members on Twitter

 

 

Syndicate content