
me.chyxion.summer.services.BaseQueryService Maven / Gradle / Ivy
package me.chyxion.summer.services;
import java.util.List;
import me.chyxion.summer.models.M0;
import javax.validation.constraints.Min;
import me.chyxion.summer.mybatis.Search;
import me.chyxion.summer.models.ViewModel;
import me.chyxion.summer.models.ListResult;
import javax.validation.constraints.NotNull;
import org.springframework.validation.annotation.Validated;
/**
* @version 0.0.1
* @since 0.0.1
* @author Shaun Chyxion
* [email protected]
* Aug 11, 2016 1:36:04 PM
*/
@Validated
public interface BaseQueryService> {
int SCAN_FETCH_BATCH_SIZE = 32;
/**
* find view model by search
* @param search search
* @return view model
*/
ViewModel findViewModel(@NotNull Search search);
/**
* find view model by id
* @param search search
* @return view model
*/
ViewModel findViewModel(@NotNull ID id);
/**
* list view models
* @param search search
* @return view models
*/
@NotNull List> listViewModels(@NotNull Search search);
/**
* list view models page
* @param search search
* @return view models page
*/
@NotNull ListResult> listViewModelsPage(@NotNull Search search);
/**
* find model by id
* @param id model id
* @return model
*/
T find(@NotNull ID id);
/**
* find model by search
* @param search search
* @return result
*/
T find(@NotNull Search search);
/**
* list by search
* @param search search
* @return list result
*/
@NotNull List list(Search search);
/**
* list page by search
* @param search search
* @return list result
*/
@NotNull ListResult listPage(@NotNull Search search);
/**
* model to view model
* @param model db model
* @return view model
*/
ViewModel toViewModel(T model);
/**
* count by search
* @param search search
* @return count
*/
int count(@NotNull Search search);
/**
* return count all
* @return count all
*/
int count();
/**
* scan model of all
* @param scanner scanner
*/
T scan(@NotNull Scanner scanner);
/**
* scan model by search
* @param search search
* @param scanner scanner
*/
T scan(Search search, @NotNull Scanner scanner);
/**
* scan model by search
* @param batchSize fetch models batch size
* @param search search
* @param scanner scanner
*/
T scan(@Min(1) int batchSize, Search search, @NotNull Scanner scanner);
interface Scanner {
/**
* scan model
* @param model model
* @return false to break
*/
boolean run(T model);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy