What is the Specification Pattern

This page summarizes the projects mentioned and recommended in the original post on reddit.com/r/programming

Our great sponsors
  • Appwrite - The Open Source Firebase alternative introduces iOS support
  • SonarQube - Static code analysis for 29 languages.
  • Scout APM - Less time debugging, more time building
  • Spring Data JPA

    Simplifies the development of creating a JPA-based data access layer.

    I have written some utility functions for composing Specifications in a nicer and safer way, inspired by how QueryDSL composes Predicates. I created a PR in attempt to merge it directly to Spring Data JPA itself (https://github.com/spring-projects/spring-data-jpa/pull/404), but unfortunately it was rejected because the Spring team plans to majorly rework Specifications in the near future (https://github.com/spring-projects/spring-data-jpa/issues/1943#issuecomment-752504333). Feel free to copy the code in my PR for your own use.

  • kotlin-jpa-specification-dsl

    This library provides a fluent DSL for querying spring data JPA repositories using spring data Specifications (i.e. the JPA Criteria API), without boilerplate code or a generated metamodel.

    If you are using Kotlin, kotlin-jpa-specification-dsl provides a very convenient way to generate Specifications from KPropertys.

  • Appwrite

    Appwrite - The Open Source Firebase alternative introduces iOS support. Appwrite is an open source backend server that helps you build native iOS applications much faster with realtime APIs for authentication, databases, files storage, cloud functions and much more!

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts