
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.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;
/**
* Helper to add positioned parameters in order.
*/
private int addPos;
/**
* 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
public DefaultRelationalQuery setParams(Object... values) {
for (Object value : values) {
setParameter(++addPos, 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;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy