/*
* Copyright (c) 2011-2014 Jeppetto and Jonathan Thompson
*
* 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.
*/
package org.iternine.jeppetto.dao;
import org.iternine.jeppetto.dao.annotation.Association;
import org.iternine.jeppetto.dao.annotation.Condition;
import org.iternine.jeppetto.dao.annotation.DataAccessMethod;
import org.iternine.jeppetto.dao.annotation.Sort;
import java.util.List;
public interface ComparisonDAO extends GenericDAO<Sample, String> {
// -----------------
Sample findByFieldOne(int fieldOneValue);
@DataAccessMethod(
conditions = { @Condition(field = "fieldOne", type = ConditionType.Equal) }
)
Sample findUsingFieldOne(int fieldOneValue);
// -----------------
List<Sample> findByFieldOneGreaterThan(int fieldOneValue);
@DataAccessMethod(
conditions = { @Condition(field = "fieldOne", type = ConditionType.GreaterThan) }
)
List<Sample> findUsingFieldOneGreaterThan(int fieldOneValue);
// -----------------
Iterable<Sample> findByFieldOneLessThanOrderByFieldOneDesc(int fieldOneValue);
@DataAccessMethod(
conditions = { @Condition(field = "fieldOne", type = ConditionType.LessThan) },
sorts = { @Sort(field = "fieldOne", direction = SortDirection.Descending) }
)
Iterable<Sample> findUsingFieldOneLessThanOrderByFieldOneDesc(int fieldOneValue);
// -----------------
List<Sample> findByHavingRelatedObjectWithRelatedIntValueLessThanOrderByIntValue(int relatedIntValueMax);
@DataAccessMethod(
associations = { @Association(field = "relatedObject",
conditions = { @Condition(field = "relatedIntValue", type = ConditionType.LessThan)})},
sorts = { @Sort(field = "intValue", direction = SortDirection.Ascending)}
)
List<Sample> findUsingHavingRelatedObjectWithRelatedIntValueLessThanOrderByIntValue(int relatedIntValueMax);
// -----------------
int countByHavingRelatedObjectsWithRelatedIntValueLessThan(int relatedIntValueMax);
@DataAccessMethod(
associations = { @Association(field = "relatedObjects",
conditions = {@Condition(field = "relatedIntValue", type = ConditionType.LessThan)})},
projections = { @org.iternine.jeppetto.dao.annotation.Projection(type = ProjectionType.RowCount) }
)
int countUsingHavingRelatedObjectsWithRelatedIntValueLessThan(int relatedIntValueMax);
// -----------------
List<Sample> findByHavingRelatedObjectsWithRelatedIntValueLessThanOrderByIntValueAndLimitAndSkip(int relatedIntValueMax, int limit, int skipCount);
@DataAccessMethod(
associations = { @Association(field = "relatedObjects",
conditions = {@Condition(field = "relatedIntValue", type = ConditionType.LessThan)})},
sorts = { @Sort(field = "intValue", direction = SortDirection.Ascending) },
limitResults = true,
skipResults = true
)
List<Sample> findUsingHavingRelatedObjectsWithRelatedIntValueLessThanOrderByIntValueAndLimitAndSkip(int relatedIntValueMax, int limit, int skipCount);
// -----------------
void deleteByIntValueWithin(List<Integer> someInts);
@DataAccessMethod(
operation = OperationType.Delete,
conditions = { @Condition(field = "intValue", type = ConditionType.Within) }
)
void deleteUsingIntValueWithin(List<Integer> someInts);
}