package com.avaje.ebeaninternal.api; import java.util.List; import com.avaje.ebean.EbeanServer; import com.avaje.ebean.Query; import com.avaje.ebean.Transaction; import com.avaje.ebean.TxScope; import com.avaje.ebean.bean.BeanCollectionLoader; import com.avaje.ebean.bean.BeanLoader; import com.avaje.ebean.bean.CallStack; import com.avaje.ebean.config.dbplatform.DatabasePlatform; import com.avaje.ebeaninternal.server.autofetch.AutoFetchManager; import com.avaje.ebeaninternal.server.core.PstmtBatch; import com.avaje.ebeaninternal.server.core.SpiOrmQueryRequest; import com.avaje.ebeaninternal.server.ddl.DdlGenerator; import com.avaje.ebeaninternal.server.deploy.BeanDescriptor; import com.avaje.ebeaninternal.server.query.CQuery; import com.avaje.ebeaninternal.server.query.CQueryEngine; import com.avaje.ebeaninternal.server.transaction.RemoteTransactionEvent; /** * Service Provider extension to EbeanServer. */ public interface SpiEbeanServer extends EbeanServer, BeanLoader, BeanCollectionLoader { /** * Return true if DeleteMissingChildren defaults to true for stateless updates. */ public boolean isDefaultDeleteMissingChildren(); /** * Return true if UpdateNullProperties defaults to true for stateless updates. */ public boolean isDefaultUpdateNullProperties(); /** * Return true if vanilla beans should be returned by queries by default. */ public boolean isVanillaMode(); /** * Return the DatabasePlatform for this server. */ public DatabasePlatform getDatabasePlatform(); /** * Return a JDBC driver specific handler for batching. *
* Required for Oracle specific batch handling. *
*/ public PstmtBatch getPstmtBatch(); /** * Create an object to represent the current CallStack. ** Typically used to identify the origin of queries for Autofetch * and object graph costing. *
*/ public CallStack createCallStack(); /** * Return the DDL generator. */ public DdlGenerator getDdlGenerator(); /** * Return the AutoFetchListener. */ public AutoFetchManager getAutoFetchManager(); /** * Clear the query execution statistics. */ public void clearQueryStatistics(); /** * Return all the descriptors. */ public List* This notifies this instance of the framework that beans have been * committed externally to it. Either by another framework or clustered * server. It uses this to maintain its cache and text indexes * appropriately. *
*/ public void externalModification(TransactionEventTable event); /** * Create a ServerTransaction. ** To specify to use the default transaction isolation use a value of -1. *
*/ public SpiTransaction createServerTransaction(boolean isExplicit, int isolationLevel); /** * Return the current transaction or null if there is no current * transaction. */ public SpiTransaction getCurrentServerTransaction(); /** * Create a ScopeTrans for a method for the given scope definition. */ public ScopeTrans createScopeTrans(TxScope txScope); /** * Create a ServerTransaction for query purposes. */ public SpiTransaction createQueryTransaction(); /** * An event from another server in the cluster used to notify local * BeanListeners of remote inserts updates and deletes. */ public void remoteTransactionEvent(RemoteTransactionEvent event); /** * Create a query request object. */ public* Used so that the list of Id's can be made accessible to client code * before the query has finished (if executing in a background thread). *
*/ public