All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.ebeaninternal.server.core.SpiOrmQueryRequest Maven / Gradle / Ivy

There is a newer version: 15.8.0
Show newest version
package io.ebeaninternal.server.core;

import io.ebean.QueryIterator;
import io.ebean.Version;
import io.ebean.event.BeanQueryRequest;
import io.ebeaninternal.api.SpiQuery;
import io.ebeaninternal.server.deploy.BeanDescriptor;

import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.function.Consumer;
import java.util.function.Predicate;

/**
 * Defines the ORM query request api.
 */
public interface SpiOrmQueryRequest extends BeanQueryRequest {

  /**
   * Return the query.
   */
  @Override
  SpiQuery query();

  /**
   * Return the associated BeanDescriptor.
   */
  BeanDescriptor descriptor();

  /**
   * Prepare the query for execution.
   */
  void prepareQuery();

  /**
   * This will create a local (readOnly) transaction if no current transaction
   * exists.
   * 

* A transaction may have been passed in explicitly or currently be active * in the thread local. If not, then a readOnly transaction is created to * execute this query. *

*/ void initTransIfRequired(); /** * Will end a locally created transaction. *

* It ends the transaction by using a rollback() as the transaction is known * to be readOnly. *

*/ void endTransIfRequired(); /** * Execute the query as a delete. */ int delete(); /** * Execute the query as a update. */ int update(); /** * Execute the query as findById. */ Object findId(); /** * Execute the find row count query. */ int findCount(); /** * Execute the find ids query. */ List findIds(); /** * Execute findEach iterating results one bean at a time. */ void findEach(Consumer consumer); /** * Execute findEach with a batch consumer. */ void findEach(int batch, Consumer> batchConsumer); /** * Execute the find returning a QueryIterator and visitor pattern. */ void findEachWhile(Predicate consumer); /** * Execute the find returning a QueryIterator. */ QueryIterator findIterate(); /** * Execute the finVersions() query. */ List> findVersions(); /** * Execute the query as findList. */ List findList(); /** * Execute the query as findSet. */ Set findSet(); /** * Execute the query as findMap. */ Map findMap(); /** * Execute the findSingleAttributeCollection query. */ > A findSingleAttributeCollection(A collection); /** * Execute returning the ResultSet. */ SpiResultSet findResultSet(); /** * Try to get the query result from the query cache. */ A getFromQueryCache(); /** * Maybe hit the bean cache returning true if everything was obtained from the * cache (that there were no misses). *

* Do this for findList() on many natural keys or many Ids. */ boolean getFromBeanCache(); /** * Return the bean cache hits (when all hits / no misses). */ List beanCacheHits(); /** * Return the bean cache hits for findMap (when all hits / no misses). */ Map beanCacheHitsAsMap(); /** * Return the bean cache hits for findMap (when all hits / no misses). */ Set beanCacheHitsAsSet(); /** * Reset Bean cache mode AUTO - require explicit setting for bean cache use with findList(). */ void resetBeanCacheAutoMode(boolean findOne); /** * Return the Database platform like clause. */ String dbLikeClause(boolean rawLikeExpression); /** * Escapes a string to use it as exact match in Like clause. */ String escapeLikeString(String value); /** * Mark the underlying transaction as not being query only. */ void markNotQueryOnly(); /** * Return true if delete by statement is allowed for this type given cascade rules etc. */ boolean isDeleteByStatement(); /** * Return true if hitting bean cache and returning all beans from cache. */ boolean isGetAllFromBeanCache(); }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy