package org.zstack.core.db; import javax.persistence.Tuple; import javax.persistence.metamodel.SingularAttribute; import java.util.Collection; import java.util.List; public interface SimpleQuery<T> { SimpleQuery<T> select(SingularAttribute...attrs); SimpleQuery<T> add(SingularAttribute attr, Op op, Collection vals); SimpleQuery<T> add(SingularAttribute attr, Op op, Object...val); SimpleQuery<T> isSoftDeleted(SingularAttribute attr); SimpleQuery<T> orderBy(SingularAttribute attr, Od order); SimpleQuery<T> groupBy(SingularAttribute attr); SimpleQuery<T> setLimit(int limit); SimpleQuery<T> setStart(int start); T find(); <T> List<T> list(); <K> K findValue(); <K> List<K> listValue(); Tuple findTuple(); List<Tuple> listTuple(); Long count(); boolean isExists(); enum Op { EQ("="), NOT_EQ("!="), NOT_NULL("is not null"), NULL("is null"), IN("in"), NOT_IN("not in"), GT(">"), LT("<"), GTE(">="), LTE("<="), LIKE("like"), NOT_LIKE("not like"); private String name; Op(String name) { this.name = name; } @Override public String toString() { return name; } } enum Od { DESC, ASC, } }