FieldTestServiceClassEntityQueryService.java
package io.github.jhipster.sample.service;
/*-
* #%L
* Jhipster Sample Application
* %%
* Copyright (C) 2017 Osgiliath
* %%
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* #L%
*/
import java.time.LocalDate;
import java.time.ZonedDateTime;
import java.math.BigDecimal;
import java.util.List;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.domain.Specifications;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import io.github.jhipster.service.QueryService;
import io.github.jhipster.sample.domain.FieldTestServiceClassEntity;
import io.github.jhipster.sample.domain.*; // for static metamodels
import io.github.jhipster.sample.repository.FieldTestServiceClassEntityRepository;
import io.github.jhipster.sample.service.dto.FieldTestServiceClassEntityCriteria;
import io.github.jhipster.sample.domain.enumeration.EnumFieldClass;
import io.github.jhipster.sample.domain.enumeration.EnumRequiredFieldClass;
/**
* Service for executing complex queries for FieldTestServiceClassEntity entities in the database.
* The main input is a {@link FieldTestServiceClassEntityCriteria} which get's converted to {@link Specifications},
* in a way that all the filters must apply.
* It returns a {@link List} of {@link FieldTestServiceClassEntity} or a {@link Page} of {@link FieldTestServiceClassEntity} which fulfills the criteria.
*/
@Service
@Transactional(readOnly = true)
public class FieldTestServiceClassEntityQueryService extends QueryService<FieldTestServiceClassEntity> {
private final Logger log = LoggerFactory.getLogger(FieldTestServiceClassEntityQueryService.class);
private final FieldTestServiceClassEntityRepository fieldTestServiceClassEntityRepository;
public FieldTestServiceClassEntityQueryService(FieldTestServiceClassEntityRepository fieldTestServiceClassEntityRepository) {
this.fieldTestServiceClassEntityRepository = fieldTestServiceClassEntityRepository;
}
/**
* Return a {@link List} of {@link FieldTestServiceClassEntity} which matches the criteria from the database
* @param criteria The object which holds all the filters, which the entities should match.
* @return the matching entities.
*/
@Transactional(readOnly = true)
public List<FieldTestServiceClassEntity> findByCriteria(FieldTestServiceClassEntityCriteria criteria) {
log.debug("find by criteria : {}", criteria);
final Specifications<FieldTestServiceClassEntity> specification = createSpecification(criteria);
return fieldTestServiceClassEntityRepository.findAll(specification);
}
/**
* Return a {@link Page} of {@link FieldTestServiceClassEntity} which matches the criteria from the database
* @param criteria The object which holds all the filters, which the entities should match.
* @param page The page, which should be returned.
* @return the matching entities.
*/
@Transactional(readOnly = true)
public Page<FieldTestServiceClassEntity> findByCriteria(FieldTestServiceClassEntityCriteria criteria, Pageable page) {
log.debug("find by criteria : {}, page: {}", criteria, page);
final Specifications<FieldTestServiceClassEntity> specification = createSpecification(criteria);
return fieldTestServiceClassEntityRepository.findAll(specification, page);
}
/**
* Function to convert FieldTestServiceClassEntityCriteria to a {@link Specifications}
*/
private Specifications<FieldTestServiceClassEntity> createSpecification(FieldTestServiceClassEntityCriteria criteria) {
Specifications<FieldTestServiceClassEntity> specification = Specifications.where(null);
if (criteria != null) {
if (criteria.getId() != null) {
specification = specification.and(buildSpecification(criteria.getId(), FieldTestServiceClassEntity_.id));
}
if (criteria.getStringBob() != null) {
specification = specification.and(buildStringSpecification(criteria.getStringBob(), FieldTestServiceClassEntity_.stringBob));
}
if (criteria.getStringRequiredBob() != null) {
specification = specification.and(buildStringSpecification(criteria.getStringRequiredBob(), FieldTestServiceClassEntity_.stringRequiredBob));
}
if (criteria.getStringMinlengthBob() != null) {
specification = specification.and(buildStringSpecification(criteria.getStringMinlengthBob(), FieldTestServiceClassEntity_.stringMinlengthBob));
}
if (criteria.getStringMaxlengthBob() != null) {
specification = specification.and(buildStringSpecification(criteria.getStringMaxlengthBob(), FieldTestServiceClassEntity_.stringMaxlengthBob));
}
if (criteria.getStringPatternBob() != null) {
specification = specification.and(buildStringSpecification(criteria.getStringPatternBob(), FieldTestServiceClassEntity_.stringPatternBob));
}
if (criteria.getIntegerBob() != null) {
specification = specification.and(buildRangeSpecification(criteria.getIntegerBob(), FieldTestServiceClassEntity_.integerBob));
}
if (criteria.getIntegerRequiredBob() != null) {
specification = specification.and(buildRangeSpecification(criteria.getIntegerRequiredBob(), FieldTestServiceClassEntity_.integerRequiredBob));
}
if (criteria.getIntegerMinBob() != null) {
specification = specification.and(buildRangeSpecification(criteria.getIntegerMinBob(), FieldTestServiceClassEntity_.integerMinBob));
}
if (criteria.getIntegerMaxBob() != null) {
specification = specification.and(buildRangeSpecification(criteria.getIntegerMaxBob(), FieldTestServiceClassEntity_.integerMaxBob));
}
if (criteria.getLongBob() != null) {
specification = specification.and(buildRangeSpecification(criteria.getLongBob(), FieldTestServiceClassEntity_.longBob));
}
if (criteria.getLongRequiredBob() != null) {
specification = specification.and(buildRangeSpecification(criteria.getLongRequiredBob(), FieldTestServiceClassEntity_.longRequiredBob));
}
if (criteria.getLongMinBob() != null) {
specification = specification.and(buildRangeSpecification(criteria.getLongMinBob(), FieldTestServiceClassEntity_.longMinBob));
}
if (criteria.getLongMaxBob() != null) {
specification = specification.and(buildRangeSpecification(criteria.getLongMaxBob(), FieldTestServiceClassEntity_.longMaxBob));
}
if (criteria.getFloatBob() != null) {
specification = specification.and(buildRangeSpecification(criteria.getFloatBob(), FieldTestServiceClassEntity_.floatBob));
}
if (criteria.getFloatRequiredBob() != null) {
specification = specification.and(buildRangeSpecification(criteria.getFloatRequiredBob(), FieldTestServiceClassEntity_.floatRequiredBob));
}
if (criteria.getFloatMinBob() != null) {
specification = specification.and(buildRangeSpecification(criteria.getFloatMinBob(), FieldTestServiceClassEntity_.floatMinBob));
}
if (criteria.getFloatMaxBob() != null) {
specification = specification.and(buildRangeSpecification(criteria.getFloatMaxBob(), FieldTestServiceClassEntity_.floatMaxBob));
}
if (criteria.getDoubleRequiredBob() != null) {
specification = specification.and(buildRangeSpecification(criteria.getDoubleRequiredBob(), FieldTestServiceClassEntity_.doubleRequiredBob));
}
if (criteria.getDoubleMinBob() != null) {
specification = specification.and(buildRangeSpecification(criteria.getDoubleMinBob(), FieldTestServiceClassEntity_.doubleMinBob));
}
if (criteria.getDoubleMaxBob() != null) {
specification = specification.and(buildRangeSpecification(criteria.getDoubleMaxBob(), FieldTestServiceClassEntity_.doubleMaxBob));
}
if (criteria.getBigDecimalRequiredBob() != null) {
specification = specification.and(buildRangeSpecification(criteria.getBigDecimalRequiredBob(), FieldTestServiceClassEntity_.bigDecimalRequiredBob));
}
if (criteria.getBigDecimalMinBob() != null) {
specification = specification.and(buildRangeSpecification(criteria.getBigDecimalMinBob(), FieldTestServiceClassEntity_.bigDecimalMinBob));
}
if (criteria.getBigDecimalMaxBob() != null) {
specification = specification.and(buildRangeSpecification(criteria.getBigDecimalMaxBob(), FieldTestServiceClassEntity_.bigDecimalMaxBob));
}
if (criteria.getLocalDateBob() != null) {
specification = specification.and(buildRangeSpecification(criteria.getLocalDateBob(), FieldTestServiceClassEntity_.localDateBob));
}
if (criteria.getLocalDateRequiredBob() != null) {
specification = specification.and(buildRangeSpecification(criteria.getLocalDateRequiredBob(), FieldTestServiceClassEntity_.localDateRequiredBob));
}
if (criteria.getInstantBob() != null) {
specification = specification.and(buildRangeSpecification(criteria.getInstantBob(), FieldTestServiceClassEntity_.instantBob));
}
if (criteria.getInstanteRequiredBob() != null) {
specification = specification.and(buildRangeSpecification(criteria.getInstanteRequiredBob(), FieldTestServiceClassEntity_.instanteRequiredBob));
}
if (criteria.getZonedDateTimeBob() != null) {
specification = specification.and(buildRangeSpecification(criteria.getZonedDateTimeBob(), FieldTestServiceClassEntity_.zonedDateTimeBob));
}
if (criteria.getZonedDateTimeRequiredBob() != null) {
specification = specification.and(buildRangeSpecification(criteria.getZonedDateTimeRequiredBob(), FieldTestServiceClassEntity_.zonedDateTimeRequiredBob));
}
if (criteria.getBooleanBob() != null) {
specification = specification.and(buildSpecification(criteria.getBooleanBob(), FieldTestServiceClassEntity_.booleanBob));
}
if (criteria.getBooleanRequiredBob() != null) {
specification = specification.and(buildSpecification(criteria.getBooleanRequiredBob(), FieldTestServiceClassEntity_.booleanRequiredBob));
}
if (criteria.getEnumBob() != null) {
specification = specification.and(buildSpecification(criteria.getEnumBob(), FieldTestServiceClassEntity_.enumBob));
}
if (criteria.getEnumRequiredBob() != null) {
specification = specification.and(buildSpecification(criteria.getEnumRequiredBob(), FieldTestServiceClassEntity_.enumRequiredBob));
}
}
return specification;
}
}