
com.parship.roperty.persistence.jpa.QueryBuilderDelegate Maven / Gradle / Ivy
package com.parship.roperty.persistence.jpa;
import org.apache.commons.lang3.Validate;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.TypedQuery;
public class QueryBuilderDelegate {
private EntityManagerFactory entityManagerFactory;
private QueryBuilder queryBuilder;
public void setEntityManagerFactory(EntityManagerFactory entityManagerFactory) {
Validate.notNull(entityManagerFactory, "Entity manager factory must not be null");
this.entityManagerFactory = entityManagerFactory;
}
public void setQueryBuilder(QueryBuilder queryBuilder) {
Validate.notNull(queryBuilder, "Query builder must not be null");
this.queryBuilder = queryBuilder;
}
EntityManager createEntityManager() {
Validate.notNull(entityManagerFactory, "Entity manager factory must not be null");
EntityManager entityManager = entityManagerFactory.createEntityManager();
queryBuilder.withEntityManager(entityManager);
return entityManager;
}
TypedQuery equality(EqualsCriterion>... equalsCriteria) {
Validate.notEmpty(equalsCriteria, "Equals criteria must not be empty");
return queryBuilder.equality(equalsCriteria);
}
TypedQuery all() {
Validate.notNull(queryBuilder, "Query builder must not be null");
return queryBuilder.all();
}
public void setResultClass(Class resultClass) {
Validate.notNull(resultClass, "Result class must not be null");
queryBuilder.setResultClass(resultClass);
}
TypedQuery count(RopertyKey ropertyKey) {
Validate.notNull(ropertyKey, "Roperty key must not be null");
Validate.notNull(queryBuilder, "Query builder must not be null");
return queryBuilder.count(ropertyKey);
}
TypedQuery likeliness(LikeCriterion... criteria) {
Validate.notEmpty(criteria, "Like criteria must not be empty");
return queryBuilder.likeliness(criteria);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy