
net.cassite.daf4j.stream.QueryStream Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of daf4j-api Show documentation
Show all versions of daf4j-api Show documentation
A library provides facade api for data accessing.
The newest version!
package net.cassite.daf4j.stream;
import net.cassite.daf4j.*;
import java.util.Iterator;
import java.util.List;
/**
* QueryStream查询.
* 用于查询实体序列
*
* @param 实体类型
*/
public class QueryStream extends QueryStreamBase> implements Iterable {
public QueryStream(E entity, DataAccess dataAccess) {
super(entity, dataAccess);
}
/**
* 将结果转换为List[实体]
*
* @return List类型的结果
*/
public List list() {
return dataAccess.list(entity, andOr, parameter);
}
/**
* 执行计数
*
* @return long类型的计数结果
*/
public long count() {
return DataUtils.executeCount(entity, andOr, parameter, dataAccess);
}
/**
* 映射所有非集合字段
*
* @return 映射后的stream
*/
public QueryProjectionStream mapAll() {
return map((Focus) null);
}
/**
* 映射指定字段/表达式
*
* @param focus 要映射的字段/表达式
* @return 映射后的stream
*/
public QueryProjectionStream map(Focus focus) {
QueryParameterWithFocus p = new QueryParameterWithFocus(parameter, focus);
return new QueryProjectionStream(entity, dataAccess, andOr, p);
}
/**
* 映射到整型的stream
*
* @param data 表示整型的字段
* @return 映射后的stream
*/
public QueryIntStream mapToInt(DataComparable data) {
return new QueryIntStream(entity, dataAccess, andOr, parameter, data);
}
/**
* 映射到Long的stream
*
* @param data 表示Long的字段
* @return 映射后的stream
*/
public QueryLongStream mapToLong(DataComparable data) {
return new QueryLongStream(entity, dataAccess, andOr, parameter, data);
}
/**
* 映射到Double的stream
*
* @param data 表示Double的字段
* @return 映射后的stream
*/
public QueryDoubleStream mapToDouble(DataComparable data) {
return new QueryDoubleStream(entity, dataAccess, andOr, parameter, data);
}
public PreResult subQuery() {
PreResult preResult = new PreResult(dataAccess, entity, andOr);
preResult.parameter = this.parameter;
return preResult;
}
@Override
public Iterator iterator() {
return list().iterator();
}
/**
* 获取第一条记录
*
* @return 第一条记录
*/
public E first() {
List list = this.limit(1).list();
return list == null || list.size() == 0 ? null : list.get(0);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy