All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.bitbucket.brunneng.qb.JpaQueryBuilder Maven / Gradle / Ivy

Go to download

Compact tool for building SQL, JPA or hibernate queries. Supports utilities for spring pagination and sorting. Supports extending to other types of query languages. Has no transitive dependencies - use only what you need.

The newest version!
package org.bitbucket.brunneng.qb;

import javax.persistence.EntityManager;
import javax.persistence.Query;
import javax.persistence.TypedQuery;

/**
 * JPQL Query builder which uses jpa {@link EntityManager} to build queries.
 */
public class JpaQueryBuilder extends AbstractJpqlQueryBuilder {

   private final EntityManager entityManager;

   public JpaQueryBuilder(EntityManager entityManager) {
      this.entityManager = entityManager;
   }

   @Override
   protected Query createQuery(QueryWithParams queryWithParams) {
      Query query = entityManager.createQuery(queryWithParams.getQuery());
      applyParametersToQuery(query, queryWithParams.getParameters());
      return query;
   }

   @Override
   protected  TypedQuery createTypedQuery(QueryWithParams queryWithParams, Class targetClass) {
      TypedQuery query = entityManager.createQuery(queryWithParams.getQuery(), targetClass);
      applyParametersToQuery(query, queryWithParams.getParameters());
      return query;
   }

   @Override
   protected Query createNativeQuery(QueryWithParams queryWithParams) {
      Query query = entityManager.createNativeQuery(queryWithParams.getQuery());
      applyParametersToQuery(query, queryWithParams.getParameters());
      return query;
   }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy