package core.framework.api.db;
import java.util.List;
import java.util.Optional;
/**
* @author neo
*/
public interface Repository<T> {
List<T> select(Query query);
default List<T> select(String where, Object... params) {
Query query = new Query();
query.where = where;
query.params = params;
return select(query);
}
Optional<T> selectOne(String where, Object... params);
Optional<T> get(Object... primaryKeys);
Optional<Long> insert(T entity);
void update(T entity);
void delete(Object... primaryKeys);
void batchInsert(List<T> entities);
void batchDelete(List<?> primaryKeys);
}