# spring-projects/spring-data-examples

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/spring-projects-spring-data-examples).**

5,421 stars · 3,408 forks · Java · Apache-2.0

## Links

- GitHub: https://github.com/spring-projects/spring-data-examples
- awesome-repositories: https://awesome-repositories.com/repository/spring-projects-spring-data-examples.md

## Description

This project is a reference implementation providing a collection of practical examples for data access patterns and repository abstractions within the Spring Data ecosystem. It serves as a comprehensive showcase for implementing consistent data layers across various relational and non-relational databases.

The repository specifically demonstrates multi-store persistence by integrating relational, document, and vector databases within a single application. It includes implementations for vector search to manage high-dimensional embeddings and similarity searches across different database technologies.

Additional capabilities covered include reactive data access for non-blocking operations and asynchronous data streams. The project also provides guidance on native image optimization to improve startup performance and memory usage through ahead-of-time compilation.

The examples further illustrate multi-tenant data isolation, the design of data repository APIs, and the integration of geospatial and full-text search.

## Tags

### Data & Databases

- [Spring Boot Database Access](https://awesome-repositories.com/f/data-databases/database-connectivity/spring-boot-database-access.md) — Provides a comprehensive reference for database access patterns and repository abstractions using the Spring Data framework.
- [Polyglot Persistence Strategies](https://awesome-repositories.com/f/data-databases/polyglot-persistence-strategies.md) — Demonstrates a comprehensive implementation of multi-store persistence by integrating relational, document, and vector databases.
- [Repository Patterns](https://awesome-repositories.com/f/data-databases/backend-data-access-layers/repository-patterns.md) — Implements repository mediator layers that decouple domain logic from specific data source implementations. ([source](https://github.com/spring-projects/spring-data-examples/blob/main/README.adoc))
- [Data Source Routing](https://awesome-repositories.com/f/data-databases/data-source-routing.md) — Implements mechanisms for directing database queries to specific storage instances based on runtime logic. ([source](https://github.com/spring-projects/spring-data-examples/tree/main/jpa))
- [Data Tenant Isolators](https://awesome-repositories.com/f/data-databases/database-orchestration/tenant/database-level-tenant-isolations/data-tenant-isolators.md) — Separates user data within shared database instances using distinct schemas or discriminator columns.
- [Store Routing](https://awesome-repositories.com/f/data-databases/distributed-key-value-stores/centralized-service-metadata/data-lake-table-metadata-stores/store-routing.md) — Provides functionality to route repositories to different storage engines automatically using domain type metadata. ([source](https://github.com/spring-projects/spring-data-examples/tree/main/multi-store))
- [Unified Repository Abstractions](https://awesome-repositories.com/f/data-databases/non-relational-data-storage/unified-repository-abstractions.md) — Builds data access layers for various databases including relational and non-relational stores using common abstractions. ([source](https://github.com/spring-projects/spring-data-examples#readme))
- [Polyglot Persistence Configurations](https://awesome-repositories.com/f/data-databases/polyglot-persistence-configurations.md) — Integrates and operates relational, document, and vector databases within a single application. ([source](https://github.com/spring-projects/spring-data-examples#readme))
- [Reactive Data Access Layers](https://awesome-repositories.com/f/data-databases/reactive-data-access-layers.md) — Implements backend data access layers using non-blocking reactive programming patterns.
- [Reactive Data Streams](https://awesome-repositories.com/f/data-databases/reactive-data-streams.md) — Implements non-blocking data access patterns that return results as asynchronous publishers or streams.
- [Asynchronous Operations](https://awesome-repositories.com/f/data-databases/reactive-databases/asynchronous-operations.md) — Executes non-blocking database operations using reactive templates to handle high concurrency. ([source](https://github.com/spring-projects/spring-data-examples#readme))
- [Reactive SQL Query Execution](https://awesome-repositories.com/f/data-databases/reactive-query-engines/reactive-sql-query-execution.md) — Retrieves database records as asynchronous streams to prevent thread blocking during heavy I/O. ([source](https://github.com/spring-projects/spring-data-examples/blob/main/README.adoc))
- [Relational Data Storage](https://awesome-repositories.com/f/data-databases/relational-data-storage.md) — Maps objects to relational database tables to perform standard data operations using a mapping layer. ([source](https://github.com/spring-projects/spring-data-examples/tree/main/jpa))
- [Polyglot Persistence Examples](https://awesome-repositories.com/f/data-databases/relational-database-drivers/multi-store-connectors/polyglot-persistence-examples.md) — Showcases the integration of relational, document, and vector databases within a single application.
- [Repository API Projections](https://awesome-repositories.com/f/data-databases/repository-patterns/repository-pattern-with-swap-support/repository-api-projections.md) — Converts database repositories into RESTful HTTP endpoints with support for pagination and data projections.
- [Vector Search](https://awesome-repositories.com/f/data-databases/vector-search.md) — Finds related content by performing similarity searches on high-dimensional vector embeddings. ([source](https://github.com/spring-projects/spring-data-examples/tree/main/jpa))
- [Vector Similarity Search](https://awesome-repositories.com/f/data-databases/vector-similarity-search.md) — Performs similarity searches on high-dimensional vector embeddings across different database technologies.
- [Full Text Search](https://awesome-repositories.com/f/data-databases/full-text-search.md) — Implements text-based searching and result filtering using specialized lexical indexing. ([source](https://github.com/spring-projects/spring-data-examples#readme))
- [Geospatial Search](https://awesome-repositories.com/f/data-databases/full-text-search/geospatial-search.md) — Provides combined full-text and geospatial search capabilities for filtering data by coordinates and boundaries. ([source](https://github.com/spring-projects/spring-data-examples/blob/main/README.adoc))
- [Geospatial Search](https://awesome-repositories.com/f/data-databases/geospatial-search.md) — Integrates geospatial search capabilities to perform location-based queries within the data layer.
- [Domain-Driven Store Routing](https://awesome-repositories.com/f/data-databases/model-to-source-routing/metadata-based-write-routings/domain-driven-store-routing.md) — Demonstrates automatic assignment of data operations to specific storage engines based on domain type metadata.
- [Multitenancy Isolation](https://awesome-repositories.com/f/data-databases/multitenancy-isolation.md) — Implements strategies for partitioning data to ensure privacy and resource separation between tenants. ([source](https://github.com/spring-projects/spring-data-examples/tree/main/jpa))
- [Example Object Database Queries](https://awesome-repositories.com/f/data-databases/semantic-search/code-search/example-based-code-queries/example-object-database-queries.md) — Generates dynamic database queries based on the state of a populated object instance. ([source](https://github.com/spring-projects/spring-data-examples/tree/main/jpa))
- [Spatial Data Extensions](https://awesome-repositories.com/f/data-databases/spatial-data-extensions.md) — Stores and queries location-based information using geospatial search and standardized geographic data formats. ([source](https://github.com/spring-projects/spring-data-examples#readme))

### Networking & Communication

- [Repository Pattern Abstractions](https://awesome-repositories.com/f/networking-communication/protocol-abstraction-layers/repository-pattern-abstractions.md) — Standardizes database access by mapping domain entities to common repository interfaces for multiple store types.

### Software Engineering & Architecture

- [Spring Framework Reference Architectures](https://awesome-repositories.com/f/software-engineering-architecture/enterprise-architecture-frameworks/spring-framework-reference-architectures.md) — Serves as a reference implementation for best-practice data access and repository patterns using the Spring framework.
- [Multi-Store Persistence Coordination](https://awesome-repositories.com/f/software-engineering-architecture/multi-store-persistence-coordination.md) — Manages persistence across different database technologies by combining diverse storage engines. ([source](https://github.com/spring-projects/spring-data-examples/blob/main/README.adoc))
- [Request-to-Query Predicate Mapping](https://awesome-repositories.com/f/software-engineering-architecture/request-to-query-predicate-mapping.md) — Binds HTTP request parameters directly to database query predicates to enable dynamic data filtering.

### Part of an Awesome List

- [Data Auditing and Versioning](https://awesome-repositories.com/f/awesome-lists/data/data-auditing-and-versioning.md) — Tracks and stores historical versions of entity changes to maintain a complete record of modifications. ([source](https://github.com/spring-projects/spring-data-examples/tree/main/jpa))

### Development Tools & Productivity

- [Native AOT Compilation](https://awesome-repositories.com/f/development-tools-productivity/native-compilation/native-aot-compilation.md) — Provides examples of compiling data access layers into native machine code using ahead-of-time processing for faster startup.

### Programming Languages & Runtimes

- [Ahead-Of-Time Compilation](https://awesome-repositories.com/f/programming-languages-runtimes/ahead-of-time-compilation.md) — Applies build-phase source code processing to reduce boot times and enable native image creation. ([source](https://github.com/spring-projects/spring-data-examples/blob/main/README.adoc))

### Web Development

- [RESTful Data APIs](https://awesome-repositories.com/f/web-development/restful-data-apis.md) — Converts database repositories into RESTful HTTP endpoints supporting custom URIs and data projections. ([source](https://github.com/spring-projects/spring-data-examples#readme))
