
io.ebeaninternal.server.querydefn.DefaultRelationalQuery Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of ebean Show documentation
Show all versions of ebean Show documentation
composite of common runtime dependencies for all platforms
package io.ebeaninternal.server.querydefn;
import io.ebean.RowConsumer;
import io.ebean.RowMapper;
import io.ebean.SqlQuery;
import io.ebean.SqlRow;
import io.ebeaninternal.api.BindParams;
import io.ebeaninternal.api.SpiEbeanServer;
import io.ebeaninternal.api.SpiSqlQuery;
import java.math.BigDecimal;
import java.util.List;
import java.util.Optional;
import java.util.function.Consumer;
import java.util.function.Predicate;
/**
* Default implementation of SQuery - SQL Query.
*/
public class DefaultRelationalQuery implements SpiSqlQuery {
private static final long serialVersionUID = -1098305779779591068L;
private final transient SpiEbeanServer server;
private String label;
private String query;
private int firstRow;
private int maxRows;
private int timeout;
private int bufferFetchSizeHint;
/**
* Bind parameters when using the query language.
*/
private final BindParams bindParams = new BindParams();
/**
* Additional supply a query detail object.
*/
public DefaultRelationalQuery(SpiEbeanServer server, String query) {
this.server = server;
this.query = query;
}
@Override
public void findEach(Consumer consumer) {
server.findEach(this, consumer, null);
}
@Override
public void findEachWhile(Predicate consumer) {
server.findEachWhile(this, consumer, null);
}
@Override
public List findList() {
return server.findList(this, null);
}
@Override
public BigDecimal findSingleDecimal() {
return server.findSingleAttribute(this, BigDecimal.class);
}
@Override
public Long findSingleLong() {
return server.findSingleAttribute(this, Long.class);
}
@Override
public T findSingleAttribute(Class cls) {
return server.findSingleAttribute(this, cls);
}
@Override
public List findSingleAttributeList(Class cls) {
return server.findSingleAttributeList(this, cls);
}
@Override
public T findOne(RowMapper mapper) {
return server.findOneMapper(this, mapper);
}
@Override
public List findList(RowMapper mapper) {
return server.findListMapper(this, mapper);
}
@Override
public void findEachRow(RowConsumer consumer) {
server.findEachRow(this, consumer);
}
@Override
public SqlRow findOne() {
return server.findOne(this, null);
}
@Override
public Optional findOneOrEmpty() {
return Optional.ofNullable(findOne());
}
@Override
@Deprecated
public DefaultRelationalQuery setParams(Object... values) {
return setParameters(values);
}
@Override
public DefaultRelationalQuery setParameters(Object... values) {
bindParams.setNextParameters(values);
return this;
}
@Override
public DefaultRelationalQuery setParameter(Object value) {
bindParams.setNextParameter(value);
return this;
}
@Override
public DefaultRelationalQuery setParameter(int position, Object value) {
bindParams.setParameter(position, value);
return this;
}
@Override
public DefaultRelationalQuery setParameter(String paramName, Object value) {
bindParams.setParameter(paramName, value);
return this;
}
@Override
public String toString() {
return "SqlQuery [" + query + "]";
}
@Override
public int getFirstRow() {
return firstRow;
}
@Override
public DefaultRelationalQuery setFirstRow(int firstRow) {
this.firstRow = firstRow;
return this;
}
@Override
public int getMaxRows() {
return maxRows;
}
@Override
public DefaultRelationalQuery setMaxRows(int maxRows) {
this.maxRows = maxRows;
return this;
}
@Override
public int getTimeout() {
return timeout;
}
@Override
public DefaultRelationalQuery setTimeout(int secs) {
this.timeout = secs;
return this;
}
@Override
public String getLabel() {
return label;
}
@Override
public DefaultRelationalQuery setLabel(String label) {
this.label = label;
return this;
}
@Override
public BindParams getBindParams() {
return bindParams;
}
@Override
public DefaultRelationalQuery setBufferFetchSizeHint(int bufferFetchSizeHint) {
this.bufferFetchSizeHint = bufferFetchSizeHint;
return this;
}
@Override
public int getBufferFetchSizeHint() {
return bufferFetchSizeHint;
}
@Override
public String getQuery() {
return query;
}
T mapperFindOne(RowMapper mapper) {
return server.findOneMapper(this, mapper);
}
List mapperFindList(RowMapper mapper) {
return server.findListMapper(this, mapper);
}
@Override
public TypeQuery mapToScalar(Class attributeType) {
return new Scalar(attributeType);
}
@Override
public TypeQuery mapTo(RowMapper mapper) {
return new Mapper(mapper);
}
private class Scalar implements SqlQuery.TypeQuery {
private final Class type;
Scalar(Class type) {
this.type = type;
}
@Override
public T findOne() {
return findSingleAttribute(type);
}
@Override
public Optional findOneOrEmpty() {
return Optional.ofNullable(findOne());
}
@Override
public List findList() {
return findSingleAttributeList(type);
}
}
private class Mapper implements SqlQuery.TypeQuery {
private final RowMapper mapper;
Mapper(RowMapper mapper) {
this.mapper = mapper;
}
@Override
public T findOne() {
return mapperFindOne(mapper);
}
@Override
public Optional findOneOrEmpty() {
return Optional.ofNullable(findOne());
}
@Override
public List findList() {
return mapperFindList(mapper);
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy