Uploaded image for project: 'Spring Data JPA'
  1. Spring Data JPA
  2. DATAJPA-8

Integration of QueryDsl library

    XMLWordPrintable

    Details

    • Type: New Feature
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 1.0 M2
    • Component/s: Core
    • Labels:
      None

      Description

      The QueryDSL library offers a fluent interface for building type safe (JPA) queries. The API looks a lot smoother than the JPA Criteria API so that an integration would be quite a cool thing. I can imagine collaboration in the following areas:

      Offer Specifications based on QueryDSL

      We could offer an alternative to the standard JPA Criteria API based Specifications as the implementations should become much nicer with Querydsl. So we could have something like this:

      public interface QueryDslSpecificationExecutor<T> {
      
        T findAll(QueryDslSpecification<T>);
      
        // further Specification executing methods like in JpaRepository
      }
      

      We could create a QueryDsl specific subclass of SimpleJpaRepository and use this subclass in case the entity specific repository interface implements this 'mixin' so to speak.

      Provide a simple base class for custom query implementations

      To ease building queries with QueryDsl we could provide a base class that gets an EntityManager injected and allows to create queries via a helper method. This class could be used for custom repository implementations then.

      Links

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              olivergierke Oliver Drotbohm
              Reporter:
              olivergierke Oliver Drotbohm
              Last updater:
              Trevor Marshall
              Votes:
              6 Vote for this issue
              Watchers:
              5 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved:

                  Time Tracking

                  Estimated:
                  Original Estimate - 0.5d
                  0.5d
                  Remaining:
                  Remaining Estimate - 0d
                  0d
                  Logged:
                  Time Spent - 0.5d
                  0.5d