public class ServerConfig extends Object
Used to programmatically construct an EbeanServer and optionally register it with the Ebean singleton.
If you just use Ebean without this programmatic configuration Ebean will read the ebean.properties file and take the configuration from there. This usually includes searching the class path and automatically registering any entity classes and listeners etc.
ServerConfig c = new ServerConfig();
// read the ebean.properties and load
// those settings into this serverConfig object
c.loadFromProperties();
// explicitly register the entity beans to avoid classpath scanning
c.addClass(Customer.class);
c.addClass(User.class);
EbeanServer server = EbeanServerFactory.create(c);
Note that ServerConfigProvider provides a standard Java ServiceLoader mechanism that can be used to apply configuration to the ServerConfig.
EbeanServerFactory
Modifier and Type | Class and Description |
---|---|
static class |
ServerConfig.UuidVersion |
Constructor and Description |
---|
ServerConfig()
Construct a Server Configuration for programmatically creating an EbeanServer.
|
Modifier and Type | Method and Description |
---|---|
void |
add(BeanPersistController beanPersistController)
Register a BeanPersistController instance.
|
void |
add(BeanPersistListener beanPersistListener)
Register a BeanPersistListener instance.
|
void |
add(BeanPostConstructListener listener)
Register a BeanPostConstructListener instance.
|
void |
add(BeanPostLoad postLoad)
Register a BeanPostLoad instance.
|
void |
add(BeanQueryAdapter beanQueryAdapter)
Register a BeanQueryAdapter instance.
|
void |
add(BulkTableEventListener bulkTableEventListener)
Add a BulkTableEventListener
|
void |
add(IdGenerator idGenerator)
Register a customer IdGenerator instance.
|
void |
addClass(Class<?> cls)
Programmatically add classes (typically entities) that this server should
use.
|
void |
addCustomMapping(DbType type,
String columnDefinition)
Add a custom type mapping that applies to all platforms.
|
void |
addCustomMapping(DbType type,
String columnDefinition,
io.ebean.annotation.Platform platform)
Add a custom type mapping.
|
void |
addMappingLocation(String mappingLocation)
Add a mapping location to search for xml mapping via class path search.
|
void |
addPackage(String packageName)
Add a package to search for entities via class path search.
|
void |
addServerConfigStartup(ServerConfigStartup configStartupListener)
Add a ServerConfigStartup.
|
io.ebean.annotation.PersistBatch |
appliedPersistBatchOnCascade()
Return the PersistBatch mode to use for 'batchOnCascade' taking into account if the database
platform supports getGeneratedKeys in batch mode.
|
String |
getAsOfSysPeriod()
Return the database column used to support history and 'As of' queries.
|
String |
getAsOfViewSuffix()
Return the suffix appended to the base table to derive the view that contains the union
of the base table and the history table in order to support asOf queries.
|
AutoTuneConfig |
getAutoTuneConfig()
Return the configuration for AutoTune.
|
int |
getBackgroundExecutorSchedulePoolSize()
Return the Background executor schedule pool size.
|
int |
getBackgroundExecutorShutdownSecs()
Return the Background executor shutdown seconds.
|
List<BulkTableEventListener> |
getBulkTableEventListeners()
Return the list of BulkTableEventListener instances.
|
int |
getCacheMaxIdleTime()
Return the L2 cache default max idle time in seconds.
|
int |
getCacheMaxSize()
Return the L2 cache default max size.
|
int |
getCacheMaxTimeToLive()
Return the L2 cache default max time to live in seconds.
|
ChangeLogListener |
getChangeLogListener()
Return the ChangeLogListener which actually performs the logging of change sets
in the background.
|
ChangeLogPrepare |
getChangeLogPrepare()
Return the ChangeLogPrepare.
|
ChangeLogRegister |
getChangeLogRegister()
Return the ChangeLogRegister which controls which ChangeLogFilter is used for each
bean type and in this way provide fine grained control over which persist requests
are included in the change log.
|
List<Class<?>> |
getClasses()
Return the classes registered for this server.
|
ClassLoadConfig |
getClassLoadConfig()
Return the ClassLoadConfig which is used to detect Joda, Java8 types etc and also
create new instances of plugins given a className.
|
java.time.Clock |
getClock()
Get the clock used for setting the timestamps (e.g.
|
DbConstraintNaming |
getConstraintNaming()
Return the constraint naming convention used in DDL generation.
|
ContainerConfig |
getContainerConfig()
Return the container / clustering configuration.
|
CurrentTenantProvider |
getCurrentTenantProvider()
Return the current tenant provider.
|
CurrentUserProvider |
getCurrentUserProvider()
Return the CurrentUserProvider.
|
String |
getDatabaseBooleanFalse()
Return a value used to represent FALSE in the database.
|
String |
getDatabaseBooleanTrue()
Return a value used to represent TRUE in the database.
|
DatabasePlatform |
getDatabasePlatform()
Return the database platform to use for this server.
|
String |
getDatabasePlatformName()
Return the database platform name (can be null).
|
int |
getDatabaseSequenceBatchSize()
Return the number of DB sequence values that should be preallocated.
|
DataSource |
getDataSource()
Return the DataSource.
|
io.ebean.datasource.DataSourceConfig |
getDataSourceConfig()
Return the configuration to build a DataSource using Ebean's own DataSource
implementation.
|
String |
getDataSourceJndiName()
Return the JNDI name of the DataSource to use.
|
String |
getDataTimeZone()
Return the time zone to use when reading/writing Timestamps via JDBC.
|
DbEncrypt |
getDbEncrypt()
Return the DbEncrypt used to encrypt and decrypt properties.
|
String |
getDbSchema()
Return the DB schema to use.
|
String |
getDdlInitSql()
Return a SQL script to execute before the "create all" DDL has been run.
|
String |
getDdlSeedSql()
Return SQL script to execute after the "create all" DDL has been run.
|
DocStoreConfig |
getDocStoreConfig()
Return the configuration for the ElasticSearch integration.
|
EncryptDeployManager |
getEncryptDeployManager()
Return the EncryptDeployManager.
|
EncryptKeyManager |
getEncryptKeyManager()
Return the EncryptKeyManager.
|
Encryptor |
getEncryptor()
Return the Encryptor used to encrypt data on the java client side (as
opposed to DB encryption functions).
|
ExternalTransactionManager |
getExternalTransactionManager()
Return the external transaction manager.
|
List<BeanFindController> |
getFindControllers()
Return the list of BeanFindController instances.
|
int |
getGeometrySRID()
Return the Geometry SRID.
|
String |
getHistoryTableSuffix()
Return the history table suffix (defaults to _history).
|
List<IdGenerator> |
getIdGenerators()
Return the custom IdGenerator instances.
|
IdType |
getIdType()
Return the preferred DB platform IdType.
|
int |
getJdbcFetchSizeFindEach()
Return the default JDBC fetchSize hint for findEach/findEachWhile queries.
|
int |
getJdbcFetchSizeFindList()
Return the default JDBC fetchSize hint for findList queries.
|
String |
getJodaLocalTimeMode()
Return the mode to use for Joda LocalTime support 'normal' or 'utc'.
|
JsonConfig.DateTime |
getJsonDateTime()
Return the JSON format used for DateTime types.
|
com.fasterxml.jackson.core.JsonFactory |
getJsonFactory()
Return the Jackson JsonFactory to use.
|
JsonConfig.Include |
getJsonInclude()
Return the JSON include mode used when writing JSON.
|
int |
getLazyLoadBatchSize()
Return the default batch size for lazy loading of beans and collections.
|
List<String> |
getMappingLocations()
Return mapping locations to search for xml mapping via class path search.
|
int |
getMaxCallStack()
Return the max call stack to use for origin location.
|
DbMigrationConfig |
getMigrationConfig()
Return the DB migration configuration.
|
String |
getName()
Return the name of the EbeanServer.
|
NamingConvention |
getNamingConvention()
Return the NamingConvention.
|
Object |
getObjectMapper()
Return the Jackson ObjectMapper.
|
List<String> |
getPackages()
Return packages to search for entities via class path search.
|
io.ebean.annotation.PersistBatch |
getPersistBatch()
Return the PersistBatch mode to use by default at the transaction level.
|
io.ebean.annotation.PersistBatch |
getPersistBatchOnCascade()
Return the JDBC batch mode to use per save(), delete(), insert() or update() request.
|
int |
getPersistBatchSize()
Return the batch size used for JDBC batching.
|
List<BeanPersistController> |
getPersistControllers()
Return the BeanPersistController instances.
|
PersistenceContextScope |
getPersistenceContextScope()
Return the default PersistenceContextScope to be used if one is not explicitly set on a query.
|
List<BeanPersistListener> |
getPersistListeners()
Return the BeanPersistListener instances.
|
PlatformConfig |
getPlatformConfig()
Return the configuration for DB types (such as UUID and custom mappings).
|
List<BeanPostConstructListener> |
getPostConstructListeners()
Return the list of BeanPostLoader instances.
|
List<BeanPostLoad> |
getPostLoaders()
Return the list of BeanPostLoader instances.
|
ProfilingConfig |
getProfilingConfig()
Return the configuration for profiling.
|
Properties |
getProperties()
Return the properties that we used for configuration and were set via a call to loadFromProperties().
|
List<BeanQueryAdapter> |
getQueryAdapters()
Return the BeanQueryAdapter instances.
|
int |
getQueryBatchSize()
Gets the query batch size.
|
int |
getQueryCacheMaxIdleTime()
Return the L2 query cache default max idle time in seconds.
|
int |
getQueryCacheMaxSize()
Return the L2 query cache default max size.
|
int |
getQueryCacheMaxTimeToLive()
Return the L2 query cache default max time to live in seconds.
|
int |
getQueryPlanTTLSeconds()
Return the query plan time to live.
|
ReadAuditLogger |
getReadAuditLogger()
Return the ReadAuditLogger to use.
|
ReadAuditPrepare |
getReadAuditPrepare()
Return the ReadAuditPrepare to use.
|
DataSource |
getReadOnlyDataSource()
Return the read only DataSource.
|
io.ebean.datasource.DataSourceConfig |
getReadOnlyDataSourceConfig()
Return the configuration for the read only DataSource.
|
String |
getResourceDirectory()
Returns the resource directory.
|
ServerCachePlugin |
getServerCachePlugin()
Return the ServerCachePlugin.
|
List<ServerConfigStartup> |
getServerConfigStartupListeners()
Return the list of ServerConfigStartup instances.
|
<P> P |
getServiceObject(Class<P> cls)
Used by plugins to obtain service objects.
|
Object |
getServiceObject(String key)
Return the service object given the key.
|
SlowQueryListener |
getSlowQueryListener()
Return the slow query event listener.
|
long |
getSlowQueryMillis()
Return the slow query time in millis.
|
TenantCatalogProvider |
getTenantCatalogProvider()
Return the tenancy catalog provider.
|
TenantDataSourceProvider |
getTenantDataSourceProvider()
Return the tenancy datasource provider.
|
TenantMode |
getTenantMode()
Return the tenancy mode used.
|
String |
getTenantPartitionColumn()
Return the column name used for TenantMode.PARTITION.
|
TenantSchemaProvider |
getTenantSchemaProvider()
Return the tenancy schema provider.
|
String |
getUuidStateFile()
Return the UUID state file.
|
ServerConfig.UuidVersion |
getUuidVersion()
Returns the UUID version mode.
|
boolean |
isAllQuotedIdentifiers()
Return true if all DB column and table names should use quoted identifiers.
|
boolean |
isAutoCommitMode()
Return true if autoCommit mode is on.
|
boolean |
isAutoReadOnlyDataSource()
Return true if Ebean should create a DataSource for use with implicit read only transactions.
|
boolean |
isChangeLogAsync()
Return true (default) if the changelog should be written async.
|
boolean |
isChangeLogIncludeInserts()
Return true if inserts should be included in the change log by default.
|
boolean |
isCollectQueryOrigins()
Return true if query plans should also collect their 'origins'.
|
boolean |
isCollectQueryPlans()
Return true if query plan capture is enabled.
|
boolean |
isCollectQueryStatsByNode()
Return true if query statistics should be collected by ObjectGraphNode.
|
boolean |
isDbOffline()
Return true if the EbeanServer instance should be created in offline mode.
|
boolean |
isDdlCreateOnly()
Return true if the "drop all ddl" should be skipped.
|
boolean |
isDdlExtra()
Return true, if extra-ddl.xml should be executed.
|
boolean |
isDdlGenerate()
Return true if the DDL should be generated.
|
boolean |
isDdlRun()
Return true if the DDL should be run.
|
boolean |
isDefaultOrderById()
Returns the default orderById setting for queries.
|
boolean |
isDefaultServer()
Return true if this server should be registered as the "default" server
with the Ebean singleton.
|
boolean |
isDisableClasspathSearch()
Return true if the class path search should be disabled.
|
boolean |
isDisableL2Cache()
Return true if L2 cache is disabled.
|
boolean |
isDisableLazyLoading()
Return true if lazy loading is disabled on queries by default.
|
boolean |
isDocStoreOnly()
Return true if this EbeanServer is a Document store only instance (has no JDBC DB).
|
boolean |
isDurationWithNanos()
Return true if Duration should be persisted with nanos precision (SQL DECIMAL).
|
boolean |
isEagerFetchLobs()
Return true if LOB's should default to fetch eager.
|
boolean |
isExplicitTransactionBeginMode()
Return true if transaction begin should be started with explicit statement.
|
boolean |
isExpressionEqualsWithNullAsNoop()
Return true if eq("someProperty", null) should to generate "1=1" rather than "is null" sql expression.
|
boolean |
isExpressionNativeIlike()
Return true if native ILIKE expression should be used if supported by the database platform (e.g.
|
boolean |
isIdGeneratorAutomatic()
When false we need explicit
@GeneratedValue mapping to assign
Identity or Sequence generated values. |
boolean |
isLocalTimeWithNanos()
Return true if LocalTime should be persisted with nanos precision.
|
boolean |
isNotifyL2CacheInForeground()
Return true if L2 cache notification should run in the foreground.
|
boolean |
isRegister()
Return true if this server should be registered with the Ebean singleton
when it is created.
|
boolean |
isSkipCacheAfterWrite()
Return true if L2 bean cache should be skipped once writes have occurred on a transaction.
|
boolean |
isTransactionRollbackOnChecked()
Return true if transactions should rollback on checked exceptions.
|
boolean |
isUpdateAllPropertiesInBatch()
Returns true if updates in JDBC batch default to include all properties by default.
|
boolean |
isUpdateChangesOnly()
Return true to only update changed properties.
|
boolean |
isUpdatesDeleteMissingChildren()
Return true if updates by default delete missing children when cascading save to a OneToMany or
ManyToMany.
|
boolean |
isUseJavaxValidationNotNull()
Returns if we use javax.validation.constraints.NotNull
|
boolean |
isUseJtaTransactionManager()
Return true if we are running in a JTA Transaction manager.
|
void |
loadFromProperties()
Load settings from ebean.properties.
|
void |
loadFromProperties(Properties properties)
Load the settings from the given properties
|
PlatformConfig |
newPlatformConfig(String propertiesPath,
String platformPrefix)
Create a new PlatformConfig based of the one held but with overridden properties by reading
properties with the given path and prefix.
|
void |
putServiceObject(Object configObject)
Put a service object into configuration such that it can be passed to a plugin.
|
void |
putServiceObject(String key,
Object configObject)
Put a service object into configuration such that it can be passed to a plugin.
|
DataSource |
runDbMigration(DataSource dataSource)
Run the DB migration against the DataSource.
|
<T> T |
service(Class<T> spiService)
Return the first service using the service loader (or null).
|
<T> ServiceLoader<T> |
serviceLoad(Class<T> spiService)
Return the service loader using the classLoader defined in ClassLoadConfig.
|
void |
setAllQuotedIdentifiers(boolean allQuotedIdentifiers)
Set to true if all DB column and table names should use quoted identifiers.
|
void |
setAsOfSysPeriod(String asOfSysPeriod)
Set the database column used to support history and 'As of' queries.
|
void |
setAsOfViewSuffix(String asOfViewSuffix)
Set the suffix appended to the base table to derive the view that contains the union
of the base table and the history table in order to support asOf queries.
|
void |
setAutoCommitMode(boolean autoCommitMode)
Set to true if autoCommit mode is on and Ebean should use autoCommit friendly Transactions and TransactionManager.
|
void |
setAutoReadOnlyDataSource(boolean autoReadOnlyDataSource)
Set to true if Ebean should create a DataSource for use with implicit read only transactions.
|
void |
setAutoTuneConfig(AutoTuneConfig autoTuneConfig)
Set the configuration for AutoTune.
|
void |
setBackgroundExecutorSchedulePoolSize(int backgroundExecutorSchedulePoolSize)
Set the Background executor schedule pool size.
|
void |
setBackgroundExecutorShutdownSecs(int backgroundExecutorShutdownSecs)
Set the Background executor shutdown seconds.
|
void |
setCacheMaxIdleTime(int cacheMaxIdleTime)
Set the L2 cache default max idle time in seconds.
|
void |
setCacheMaxSize(int cacheMaxSize)
Set the L2 cache default max size.
|
void |
setCacheMaxTimeToLive(int cacheMaxTimeToLive)
Set the L2 cache default max time to live in seconds.
|
void |
setChangeLogAsync(boolean changeLogAsync)
Sets if the changelog should be written async (default = true).
|
void |
setChangeLogIncludeInserts(boolean changeLogIncludeInserts)
Set if inserts should be included in the change log by default.
|
void |
setChangeLogListener(ChangeLogListener changeLogListener)
Set the ChangeLogListener which actually performs the logging of change sets
in the background.
|
void |
setChangeLogPrepare(ChangeLogPrepare changeLogPrepare)
Set the ChangeLogPrepare.
|
void |
setChangeLogRegister(ChangeLogRegister changeLogRegister)
Set the ChangeLogRegister which controls which ChangeLogFilter is used for each
bean type and in this way provide fine grained control over which persist requests
are included in the change log.
|
void |
setClasses(List<Class<?>> classes)
Set the list of classes (entities, listeners, scalarTypes etc) that should
be used for this server.
|
void |
setClassLoadConfig(ClassLoadConfig classLoadConfig)
Set the ClassLoadConfig which is used to detect Joda, Java8 types etc and also
create new instances of plugins given a className.
|
void |
setClock(java.time.Clock clock)
Set the clock used for setting the timestamps (e.g.
|
void |
setCollectQueryOrigins(boolean collectQueryOrigins)
Set to true if query plans should collect their 'origin' points.
|
void |
setCollectQueryPlans(boolean collectQueryPlans)
Set to true to enable query plan capture.
|
void |
setCollectQueryStatsByNode(boolean collectQueryStatsByNode)
Set to true to collection query execution statistics by ObjectGraphNode.
|
void |
setConstraintNaming(DbConstraintNaming constraintNaming)
Set the constraint naming convention used in DDL generation.
|
void |
setContainerConfig(ContainerConfig containerConfig)
Set the container / clustering configuration.
|
void |
setCurrentTenantProvider(CurrentTenantProvider currentTenantProvider)
Set the current tenant provider.
|
void |
setCurrentUserProvider(CurrentUserProvider currentUserProvider)
Set the CurrentUserProvider.
|
void |
setDatabaseBooleanFalse(String databaseFalse)
Set the value to represent FALSE in the database.
|
void |
setDatabaseBooleanTrue(String databaseTrue)
Set the value to represent TRUE in the database.
|
void |
setDatabasePlatform(DatabasePlatform databasePlatform)
Explicitly set the database platform to use.
|
void |
setDatabasePlatformName(String databasePlatformName)
Explicitly set the database platform name
|
void |
setDatabaseSequenceBatch(int databaseSequenceBatchSize)
Set the number of DB sequence values that should be preallocated and cached
by Ebean.
|
void |
setDatabaseSequenceBatchSize(int databaseSequenceBatchSize)
Set the number of sequences to fetch/preallocate when using DB sequences.
|
void |
setDataSource(DataSource dataSource)
Set a DataSource.
|
void |
setDataSourceConfig(io.ebean.datasource.DataSourceConfig dataSourceConfig)
Set the configuration required to build a DataSource using Ebean's own
DataSource implementation.
|
void |
setDataSourceJndiName(String dataSourceJndiName)
Set the JNDI name of the DataSource to use.
|
void |
setDataTimeZone(String dataTimeZone)
Set the time zone to use when reading/writing Timestamps via JDBC.
|
void |
setDbEncrypt(DbEncrypt dbEncrypt)
Set the DbEncrypt used to encrypt and decrypt properties.
|
void |
setDbOffline(boolean dbOffline)
Set to true if the EbeanServer instance should be created in offline mode.
|
void |
setDbSchema(String dbSchema)
Set the DB schema to use.
|
void |
setDbUuid(PlatformConfig.DbUuid dbUuid)
Set the DB type used to store UUID.
|
void |
setDdlCreateOnly(boolean ddlCreateOnly)
Set to true if the "drop all ddl" should be skipped.
|
void |
setDdlExtra(boolean ddlExtra)
Set to false if you not want to run the extra-ddl.xml scripts.
|
void |
setDdlGenerate(boolean ddlGenerate)
Set to true to generate the "create all" DDL on startup.
|
void |
setDdlInitSql(String ddlInitSql)
Set a SQL script to execute before the "create all" DDL has been run.
|
void |
setDdlRun(boolean ddlRun)
Set to true to run the generated "create all DDL" on startup.
|
void |
setDdlSeedSql(String ddlSeedSql)
Set a SQL script to execute after the "create all" DDL has been run.
|
void |
setDefaultOrderById(boolean defaultOrderById)
Sets the default orderById setting for queries.
|
void |
setDefaultServer(boolean defaultServer)
Set false if you do not want this EbeanServer to be registered as the "default" server
with the Ebean singleton.
|
void |
setDisableClasspathSearch(boolean disableClasspathSearch)
Set to true to disable the class path search even for the case where no entity bean classes
have been registered.
|
void |
setDisableL2Cache(boolean disableL2Cache)
Set to true to disable L2 caching.
|
void |
setDisableLazyLoading(boolean disableLazyLoading)
Set to true to disable lazy loading by default.
|
void |
setDocStoreConfig(DocStoreConfig docStoreConfig)
Set the configuration for the ElasticSearch integration.
|
void |
setDocStoreOnly(boolean docStoreOnly)
Set to true if this EbeanServer is Document store only instance (has no JDBC DB).
|
void |
setDurationWithNanos(boolean durationWithNanos)
Set to true if Duration should be persisted with nanos precision (SQL DECIMAL).
|
void |
setEagerFetchLobs(boolean eagerFetchLobs)
Set to true if you want LOB's to be fetch eager by default.
|
void |
setEncryptDeployManager(EncryptDeployManager encryptDeployManager)
Set the EncryptDeployManager.
|
void |
setEncryptKeyManager(EncryptKeyManager encryptKeyManager)
Set the EncryptKeyManager.
|
void |
setEncryptor(Encryptor encryptor)
Set the Encryptor used to encrypt data on the java client side (as opposed
to DB encryption functions).
|
void |
setExplicitTransactionBeginMode(boolean explicitTransactionBeginMode)
Set to true if transaction begin should be started with explicit statement.
|
void |
setExpressionEqualsWithNullAsNoop(boolean expressionEqualsWithNullAsNoop)
Set to true if you want eq("someProperty", null) to generate "1=1" rather than "is null" sql expression.
|
void |
setExpressionNativeIlike(boolean expressionNativeIlike)
Set to true to use native ILIKE expression if supported by the database platform (e.g.
|
void |
setExternalTransactionManager(ExternalTransactionManager externalTransactionManager)
Set the external transaction manager.
|
void |
setFindControllers(List<BeanFindController> findControllers)
Set the list of BeanFindController instances.
|
void |
setGeometrySRID(int geometrySRID)
Set the Geometry SRID.
|
void |
setHistoryTableSuffix(String historyTableSuffix)
Set the history table suffix.
|
void |
setIdGeneratorAutomatic(boolean idGeneratorAutomatic)
Set to false such that Id properties require explicit
@GeneratedValue
mapping before they are assigned Identity or Sequence generation based on platform. |
void |
setIdGenerators(List<IdGenerator> idGenerators)
Set the custom IdGenerator instances.
|
void |
setIdType(IdType idType)
Set the preferred DB platform IdType.
|
void |
setJdbcFetchSizeFindEach(int jdbcFetchSizeFindEach)
Set the default JDBC fetchSize hint for findEach/findEachWhile queries.
|
void |
setJdbcFetchSizeFindList(int jdbcFetchSizeFindList)
Set the default JDBC fetchSize hint for findList queries.
|
void |
setJodaLocalTimeMode(String jodaLocalTimeMode)
Set the mode to use for Joda LocalTime support 'normal' or 'utc'.
|
void |
setJsonDateTime(JsonConfig.DateTime jsonDateTime)
Set the JSON format to use for DateTime types.
|
void |
setJsonFactory(com.fasterxml.jackson.core.JsonFactory jsonFactory)
Set the Jackson JsonFactory to use.
|
void |
setJsonInclude(JsonConfig.Include jsonInclude)
Set the JSON include mode used when writing JSON.
|
void |
setLazyLoadBatchSize(int lazyLoadBatchSize)
Set the default batch size for lazy loading.
|
void |
setLocalTimeWithNanos(boolean localTimeWithNanos)
Set to true if LocalTime should be persisted with nanos precision.
|
void |
setMappingLocations(List<String> mappingLocations)
Set mapping locations to search for xml mapping via class path search.
|
void |
setMaxCallStack(int maxCallStack)
Set the max call stack to use for origin location.
|
void |
setMigrationConfig(DbMigrationConfig migrationConfig)
Set the DB migration configuration.
|
void |
setName(String name)
Set the name of the EbeanServer.
|
void |
setNamingConvention(NamingConvention namingConvention)
Set the NamingConvention.
|
void |
setNotifyL2CacheInForeground(boolean notifyL2CacheInForeground)
Set this to true to run L2 cache notification in the foreground.
|
void |
setObjectMapper(Object objectMapper)
Set the Jackson ObjectMapper.
|
void |
setPackages(List<String> packages)
Set packages to search for entities via class path search.
|
void |
setPersistBatch(io.ebean.annotation.PersistBatch persistBatch)
Set the JDBC batch mode to use at the transaction level.
|
void |
setPersistBatching(boolean persistBatching)
Deprecated, please migrate to using setPersistBatch().
|
void |
setPersistBatchOnCascade(io.ebean.annotation.PersistBatch persistBatchOnCascade)
Set the JDBC batch mode to use per save(), delete(), insert() or update() request.
|
void |
setPersistBatchSize(int persistBatchSize)
Set the batch size used for JDBC batching.
|
void |
setPersistControllers(List<BeanPersistController> persistControllers)
Register all the BeanPersistController instances.
|
void |
setPersistenceContextScope(PersistenceContextScope persistenceContextScope)
Set the PersistenceContext scope to be used if one is not explicitly set on a query.
|
void |
setPersistListeners(List<BeanPersistListener> persistListeners)
Register all the BeanPersistListener instances.
|
void |
setPlatformConfig(PlatformConfig platformConfig)
Set the configuration for DB platform (such as UUID and custom mappings).
|
void |
setPostConstructListeners(List<BeanPostConstructListener> listeners)
Set the list of BeanPostLoader instances.
|
void |
setPostLoaders(List<BeanPostLoad> postLoaders)
Set the list of BeanPostLoader instances.
|
void |
setProfilingConfig(ProfilingConfig profilingConfig)
Set the configuration for profiling.
|
void |
setQueryAdapters(List<BeanQueryAdapter> queryAdapters)
Register all the BeanQueryAdapter instances.
|
void |
setQueryBatchSize(int queryBatchSize)
Sets the query batch size.
|
void |
setQueryCacheMaxIdleTime(int queryCacheMaxIdleTime)
Set the L2 query cache default max idle time in seconds.
|
void |
setQueryCacheMaxSize(int queryCacheMaxSize)
Set the L2 query cache default max size.
|
void |
setQueryCacheMaxTimeToLive(int queryCacheMaxTimeToLive)
Set the L2 query cache default max time to live in seconds.
|
void |
setQueryPlanTTLSeconds(int queryPlanTTLSeconds)
Set the query plan time to live.
|
void |
setReadAuditLogger(ReadAuditLogger readAuditLogger)
Set the ReadAuditLogger to use.
|
void |
setReadAuditPrepare(ReadAuditPrepare readAuditPrepare)
Set the ReadAuditPrepare to use.
|
void |
setReadOnlyDataSource(DataSource readOnlyDataSource)
Set the read only DataSource.
|
void |
setReadOnlyDataSourceConfig(io.ebean.datasource.DataSourceConfig readOnlyDataSourceConfig)
Set the configuration for the read only DataSource.
|
void |
setRegister(boolean register)
Set to false if you do not want this server to be registered with the Ebean
singleton when it is created.
|
void |
setResourceDirectory(String resourceDirectory)
Sets the resource directory.
|
void |
setRunMigration(boolean runMigration)
Set to true to run DB migrations on server start.
|
void |
setServerCachePlugin(ServerCachePlugin serverCachePlugin)
Set the ServerCachePlugin to use.
|
void |
setSkipCacheAfterWrite(boolean skipCacheAfterWrite)
Set to false when we still want to hit the cache after a write has occurred on a transaction.
|
void |
setSlowQueryListener(SlowQueryListener slowQueryListener)
Set the slow query event listener.
|
void |
setSlowQueryMillis(long slowQueryMillis)
Set the slow query time in millis.
|
void |
setTenantCatalogProvider(TenantCatalogProvider tenantCatalogProvider)
Set the tenancy catalog provider.
|
void |
setTenantDataSourceProvider(TenantDataSourceProvider tenantDataSourceProvider)
Set the tenancy datasource provider.
|
void |
setTenantMode(TenantMode tenantMode)
Set the tenancy mode to use.
|
void |
setTenantPartitionColumn(String tenantPartitionColumn)
Set the column name used for TenantMode.PARTITION.
|
void |
setTenantSchemaProvider(TenantSchemaProvider tenantSchemaProvider)
Set the tenancy schema provider.
|
void |
setTransactionRollbackOnChecked(boolean transactionRollbackOnChecked)
Set to true if transactions should by default rollback on checked exceptions.
|
void |
setUpdateAllPropertiesInBatch(boolean updateAllPropertiesInBatch)
Set to false if by default updates in JDBC batch should not include all properties.
|
void |
setUpdateChangesOnly(boolean updateChangesOnly)
Set to true to only update changed properties.
|
void |
setUpdatesDeleteMissingChildren(boolean updatesDeleteMissingChildren)
Set if updates by default delete missing children when cascading save to a OneToMany or
ManyToMany.
|
void |
setUseJavaxValidationNotNull(boolean useJavaxValidationNotNull)
Controls if Ebean should ignore
&x64;javax.validation.contstraints.NotNull
with respect to generating a NOT NULL column. |
void |
setUseJtaTransactionManager(boolean useJtaTransactionManager)
Set to true if we are running in a JTA Transaction manager.
|
void |
setUuidStateFile(String uuidStateFile)
Set the UUID state file.
|
void |
setUuidVersion(ServerConfig.UuidVersion uuidVersion)
Sets the UUID version mode.
|
public ServerConfig()
public java.time.Clock getClock()
public void setClock(java.time.Clock clock)
public long getSlowQueryMillis()
public void setSlowQueryMillis(long slowQueryMillis)
public SlowQueryListener getSlowQueryListener()
public void setSlowQueryListener(SlowQueryListener slowQueryListener)
public void setDefaultOrderById(boolean defaultOrderById)
public boolean isDefaultOrderById()
public void putServiceObject(String key, Object configObject)
For example, put IgniteConfiguration in to be passed to the Ignite plugin.
public Object getServiceObject(String key)
public void putServiceObject(Object configObject)
JedisPool jedisPool = ..
serverConfig.putServiceObject(jedisPool);
public <P> P getServiceObject(Class<P> cls)
JedisPool jedisPool = serverConfig.getServiceObject(JedisPool.class);
cls
- The type of the service object to obtainpublic com.fasterxml.jackson.core.JsonFactory getJsonFactory()
If not set a default implementation will be used.
public void setJsonFactory(com.fasterxml.jackson.core.JsonFactory jsonFactory)
If not set a default implementation will be used.
public JsonConfig.DateTime getJsonDateTime()
public void setJsonDateTime(JsonConfig.DateTime jsonDateTime)
public JsonConfig.Include getJsonInclude()
public void setJsonInclude(JsonConfig.Include jsonInclude)
Set to NON_NULL or NON_EMPTY to suppress nulls or null & empty collections respectively.
public ContainerConfig getContainerConfig()
public void setContainerConfig(ContainerConfig containerConfig)
public boolean isRegister()
By default this is set to true.
public void setRegister(boolean register)
By default this is set to true.
public boolean isDefaultServer()
This is only used when setRegister(boolean)
is also true.
public void setDefaultServer(boolean defaultServer)
This is only used when setRegister(boolean)
is also true.
public CurrentUserProvider getCurrentUserProvider()
public void setCurrentUserProvider(CurrentUserProvider currentUserProvider)
public TenantMode getTenantMode()
public void setTenantMode(TenantMode tenantMode)
public String getTenantPartitionColumn()
public void setTenantPartitionColumn(String tenantPartitionColumn)
public CurrentTenantProvider getCurrentTenantProvider()
public void setCurrentTenantProvider(CurrentTenantProvider currentTenantProvider)
public TenantDataSourceProvider getTenantDataSourceProvider()
public void setTenantDataSourceProvider(TenantDataSourceProvider tenantDataSourceProvider)
public TenantSchemaProvider getTenantSchemaProvider()
public void setTenantSchemaProvider(TenantSchemaProvider tenantSchemaProvider)
public TenantCatalogProvider getTenantCatalogProvider()
public void setTenantCatalogProvider(TenantCatalogProvider tenantCatalogProvider)
public io.ebean.annotation.PersistBatch getPersistBatch()
When INSERT or ALL is used then save(), delete() etc do not execute immediately but instead go into a JDBC batch execute buffer that is flushed. The buffer is flushed if a query is executed, transaction ends or the batch size is meet.
public void setPersistBatch(io.ebean.annotation.PersistBatch persistBatch)
When INSERT or ALL is used then save(), delete() etc do not execute immediately but instead go into a JDBC batch execute buffer that is flushed. The buffer is flushed if a query is executed, transaction ends or the batch size is meet.
public io.ebean.annotation.PersistBatch getPersistBatchOnCascade()
This makes sense when a save() or delete() cascades and executes multiple child statements. The best case for this is when saving a master/parent bean this cascade inserts many detail/child beans.
This only takes effect when the persistBatch mode at the transaction level does not take effect.
public void setPersistBatchOnCascade(io.ebean.annotation.PersistBatch persistBatchOnCascade)
This makes sense when a save() or delete() etc cascades and executes multiple child statements. The best caase for this is when saving a master/parent bean this cascade inserts many detail/child beans.
This only takes effect when the persistBatch mode at the transaction level does not take effect.
public void setPersistBatching(boolean persistBatching)
Set to true if you what to use JDBC batching for persisting and deleting beans.
With this Ebean will batch up persist requests and use the JDBC batch api. This is a performance optimisation designed to reduce the network chatter.
When true this is equivalent to setPersistBatch(PersistBatch.ALL)
or
when false to setPersistBatch(PersistBatch.NONE)
public int getPersistBatchSize()
public void setPersistBatchSize(int persistBatchSize)
You can also set the batch size on the transaction.
Transaction.setBatchSize(int)
public int getQueryBatchSize()
public void setQueryBatchSize(int queryBatchSize)
queryBatchSize
- the new query batch sizepublic boolean isDisableLazyLoading()
public void setDisableLazyLoading(boolean disableLazyLoading)
It can be turned on per query via Query.setDisableLazyLoading(boolean)
.
public int getLazyLoadBatchSize()
public void setLazyLoadBatchSize(int lazyLoadBatchSize)
This is the number of beans or collections loaded when lazy loading is invoked by default.
The default value is for this is 10 (load 10 beans or collections).
You can explicitly control the lazy loading batch size for a given join on a query using +lazy(batchSize) or JoinConfig.
public void setDatabaseSequenceBatchSize(int databaseSequenceBatchSize)
This is a performance optimisation to reduce the number times Ebean requests a sequence to be used as an Id for a bean (aka reduce network chatter).
public int getJdbcFetchSizeFindList()
public void setJdbcFetchSizeFindList(int jdbcFetchSizeFindList)
public int getJdbcFetchSizeFindEach()
public void setJdbcFetchSizeFindEach(int jdbcFetchSizeFindEach)
public ChangeLogPrepare getChangeLogPrepare()
This is used to set user context information to the ChangeSet in the foreground thread prior to the logging occurring in a background thread.
public void setChangeLogPrepare(ChangeLogPrepare changeLogPrepare)
This is used to set user context information to the ChangeSet in the foreground thread prior to the logging occurring in a background thread.
public ChangeLogListener getChangeLogListener()
public void setChangeLogListener(ChangeLogListener changeLogListener)
public ChangeLogRegister getChangeLogRegister()
public void setChangeLogRegister(ChangeLogRegister changeLogRegister)
public boolean isChangeLogIncludeInserts()
public void setChangeLogIncludeInserts(boolean changeLogIncludeInserts)
public boolean isChangeLogAsync()
public void setChangeLogAsync(boolean changeLogAsync)
public ReadAuditLogger getReadAuditLogger()
public void setReadAuditLogger(ReadAuditLogger readAuditLogger)
public ReadAuditPrepare getReadAuditPrepare()
public void setReadAuditPrepare(ReadAuditPrepare readAuditPrepare)
It is expected that an implementation is used that read user context information (user id, user ip address etc) and sets it on the ReadEvent bean before it is sent to the ReadAuditLogger.
public ProfilingConfig getProfilingConfig()
public void setProfilingConfig(ProfilingConfig profilingConfig)
public String getDbSchema()
public void setDbSchema(String dbSchema)
public DbMigrationConfig getMigrationConfig()
public void setMigrationConfig(DbMigrationConfig migrationConfig)
public int getGeometrySRID()
public void setGeometrySRID(int geometrySRID)
public String getDataTimeZone()
When set a Calendar object is used in JDBC calls when reading/writing Timestamp objects.
public void setDataTimeZone(String dataTimeZone)
public String getAsOfViewSuffix()
public void setAsOfViewSuffix(String asOfViewSuffix)
public String getAsOfSysPeriod()
public void setAsOfSysPeriod(String asOfSysPeriod)
public String getHistoryTableSuffix()
public void setHistoryTableSuffix(String historyTableSuffix)
public boolean isUseJtaTransactionManager()
public void setUseJtaTransactionManager(boolean useJtaTransactionManager)
public ExternalTransactionManager getExternalTransactionManager()
public void setExternalTransactionManager(ExternalTransactionManager externalTransactionManager)
public ServerCachePlugin getServerCachePlugin()
public void setServerCachePlugin(ServerCachePlugin serverCachePlugin)
public boolean isEagerFetchLobs()
public void setEagerFetchLobs(boolean eagerFetchLobs)
public int getMaxCallStack()
public void setMaxCallStack(int maxCallStack)
public boolean isTransactionRollbackOnChecked()
public void setTransactionRollbackOnChecked(boolean transactionRollbackOnChecked)
public int getBackgroundExecutorSchedulePoolSize()
public void setBackgroundExecutorSchedulePoolSize(int backgroundExecutorSchedulePoolSize)
public int getBackgroundExecutorShutdownSecs()
public void setBackgroundExecutorShutdownSecs(int backgroundExecutorShutdownSecs)
public int getCacheMaxSize()
public void setCacheMaxSize(int cacheMaxSize)
public int getCacheMaxIdleTime()
public void setCacheMaxIdleTime(int cacheMaxIdleTime)
public int getCacheMaxTimeToLive()
public void setCacheMaxTimeToLive(int cacheMaxTimeToLive)
public int getQueryCacheMaxSize()
public void setQueryCacheMaxSize(int queryCacheMaxSize)
public int getQueryCacheMaxIdleTime()
public void setQueryCacheMaxIdleTime(int queryCacheMaxIdleTime)
public int getQueryCacheMaxTimeToLive()
public void setQueryCacheMaxTimeToLive(int queryCacheMaxTimeToLive)
public NamingConvention getNamingConvention()
If none has been set the default UnderscoreNamingConvention is used.
public void setNamingConvention(NamingConvention namingConvention)
If none is set the default UnderscoreNamingConvention is used.
public boolean isAllQuotedIdentifiers()
public void setAllQuotedIdentifiers(boolean allQuotedIdentifiers)
public boolean isDocStoreOnly()
public void setDocStoreOnly(boolean docStoreOnly)
public DocStoreConfig getDocStoreConfig()
public void setDocStoreConfig(DocStoreConfig docStoreConfig)
public DbConstraintNaming getConstraintNaming()
public void setConstraintNaming(DbConstraintNaming constraintNaming)
public AutoTuneConfig getAutoTuneConfig()
public void setAutoTuneConfig(AutoTuneConfig autoTuneConfig)
public DataSource getDataSource()
public void setDataSource(DataSource dataSource)
public DataSource getReadOnlyDataSource()
public void setReadOnlyDataSource(DataSource readOnlyDataSource)
Note that the DataSource is expected to use AutoCommit true mode avoiding the need for explicit commit (or rollback).
This read only DataSource will be used for implicit query only transactions. It is not used if the transaction is created explicitly or if the query is an update or delete query.
public io.ebean.datasource.DataSourceConfig getDataSourceConfig()
public void setDataSourceConfig(io.ebean.datasource.DataSourceConfig dataSourceConfig)
public boolean isAutoReadOnlyDataSource()
public void setAutoReadOnlyDataSource(boolean autoReadOnlyDataSource)
public io.ebean.datasource.DataSourceConfig getReadOnlyDataSourceConfig()
This is only used if autoReadOnlyDataSource is true.
The driver, url, username and password default to the configuration for the main DataSource if they are not set on this configuration. This means there is actually no need to set any configuration here and we only set configuration for url, username and password etc if it is different from the main DataSource.
public void setReadOnlyDataSourceConfig(io.ebean.datasource.DataSourceConfig readOnlyDataSourceConfig)
public String getDataSourceJndiName()
public void setDataSourceJndiName(String dataSourceJndiName)
By default a prefix of "java:comp/env/jdbc/" is used to lookup the DataSource. This prefix is not used if dataSourceJndiName starts with "java:".
public boolean isAutoCommitMode()
public void setAutoCommitMode(boolean autoCommitMode)
public boolean isExplicitTransactionBeginMode()
public void setExplicitTransactionBeginMode(boolean explicitTransactionBeginMode)
This works for H2 and Postgres but not for Oracle - only use this if you first name is Daryl or you have explicitly talked to Rob about this feature.
This is generally not expected to be turned on but instead allow transactions to start implicitly which is generally the standard approach.
public String getDatabaseBooleanTrue()
This is used for databases that do not support boolean natively.
The value returned is either a Integer or a String (e.g. "1", or "T").
public void setDatabaseBooleanTrue(String databaseTrue)
This is used for databases that do not support boolean natively.
The value set is either a Integer or a String (e.g. "1", or "T").
public String getDatabaseBooleanFalse()
This is used for databases that do not support boolean natively.
The value returned is either a Integer or a String (e.g. "0", or "F").
public void setDatabaseBooleanFalse(String databaseFalse)
This is used for databases that do not support boolean natively.
The value set is either a Integer or a String (e.g. "0", or "F").
public int getDatabaseSequenceBatchSize()
public void setDatabaseSequenceBatch(int databaseSequenceBatchSize)
This is only used for DB's that use sequences and is a performance optimisation. This reduces the number of times Ebean needs to get a sequence value from the Database reducing network chatter.
By default this value is 10 so when we need another Id (and don't have one in our cache) Ebean will fetch 10 id's from the database. Note that when the cache drops to have full (which is 5 by default) Ebean will fetch another batch of Id's in a background thread.
public String getDatabasePlatformName()
If null then the platform is determined automatically via the JDBC driver information.
public void setDatabasePlatformName(String databasePlatformName)
If none is set then the platform is determined automatically via the JDBC driver information.
This can be used when the Database Platform can not be automatically detected from the JDBC driver (possibly 3rd party JDBC driver). It is also useful when you want to do offline DDL generation for a database platform that you don't have access to.
Values are oracle, h2, postgres, mysql, sqlserver16, sqlserver17.
public DatabasePlatform getDatabasePlatform()
public void setDatabasePlatform(DatabasePlatform databasePlatform)
If none is set then the platform is determined via the databasePlatformName or automatically via the JDBC driver information.
public EncryptKeyManager getEncryptKeyManager()
public void setEncryptKeyManager(EncryptKeyManager encryptKeyManager)
This is required when you want to use encrypted properties.
You can also set this in ebean.proprerties:
# set via ebean.properties
ebean.encryptKeyManager=org.avaje.tests.basic.encrypt.BasicEncyptKeyManager
public EncryptDeployManager getEncryptDeployManager()
This is optionally used to programmatically define which columns are
encrypted instead of using the Encrypted
Annotation.
public void setEncryptDeployManager(EncryptDeployManager encryptDeployManager)
This is optionally used to programmatically define which columns are
encrypted instead of using the Encrypted
Annotation.
public Encryptor getEncryptor()
public void setEncryptor(Encryptor encryptor)
Ebean has a default implementation that it will use if you do not set your own Encryptor implementation.
public boolean isDbOffline()
public void setDbOffline(boolean dbOffline)
Typically used to create an EbeanServer instance for DDL Migration generation without requiring a real DataSource / Database to connect to.
public DbEncrypt getDbEncrypt()
Note that if this is not set then the DbPlatform may already have a DbEncrypt set and that will be used.
public void setDbEncrypt(DbEncrypt dbEncrypt)
Note that if this is not set then the DbPlatform may already have a DbEncrypt set (H2, MySql, Postgres and Oracle platforms have a DbEncrypt)
public PlatformConfig getPlatformConfig()
public void setPlatformConfig(PlatformConfig platformConfig)
public void setDbUuid(PlatformConfig.DbUuid dbUuid)
public ServerConfig.UuidVersion getUuidVersion()
public void setUuidVersion(ServerConfig.UuidVersion uuidVersion)
public String getUuidStateFile()
public void setUuidStateFile(String uuidStateFile)
public boolean isLocalTimeWithNanos()
public void setLocalTimeWithNanos(boolean localTimeWithNanos)
Otherwise it is persisted using java.sql.Time which is seconds precision.
public boolean isDurationWithNanos()
Otherwise it is persisted with second precision (SQL INTEGER).
public void setDurationWithNanos(boolean durationWithNanos)
Otherwise it is persisted with second precision (SQL INTEGER).
public void setRunMigration(boolean runMigration)
This is the same as serverConfig.getMigrationConfig().setRunMigration(). We have added this method here as it is often the only thing we need to configure for migrations.
public void setDdlGenerate(boolean ddlGenerate)
Typically we want this on when we are running tests locally (and often using H2) and we want to create the full DB schema from scratch to run tests.
public void setDdlRun(boolean ddlRun)
Typically we want this on when we are running tests locally (and often using H2) and we want to create the full DB schema from scratch to run tests.
public void setDdlExtra(boolean ddlExtra)
Typically we want this on when we are running tests.
public boolean isDdlCreateOnly()
Typically we want to do this when using H2 (in memory) as our test database and the drop statements are not required so skipping the drop table statements etc makes it faster with less noise in the logs.
public void setDdlCreateOnly(boolean ddlCreateOnly)
Typically we want to do this when using H2 (in memory) as our test database and the drop statements are not required so skipping the drop table statements etc makes it faster with less noise in the logs.
public String getDdlSeedSql()
Typically this is a sql script that inserts test seed data when running tests. Place a sql script in src/test/resources that inserts test seed data.
public void setDdlSeedSql(String ddlSeedSql)
Typically this is a sql script that inserts test seed data when running tests. Place a sql script in src/test/resources that inserts test seed data.
public String getDdlInitSql()
public void setDdlInitSql(String ddlInitSql)
public boolean isDdlGenerate()
public boolean isDdlRun()
public boolean isDdlExtra()
public boolean isDisableClasspathSearch()
public void setDisableClasspathSearch(boolean disableClasspathSearch)
public String getJodaLocalTimeMode()
public void setJodaLocalTimeMode(String jodaLocalTimeMode)
public void addClass(Class<?> cls)
The class can be an Entity, Embedded type, ScalarType, BeanPersistListener, BeanFinder or BeanPersistController.
If no classes are specified then the classes are found automatically via searching the class path.
Alternatively the classes can be added via setClasses(List)
.
cls
- the entity type (or other type) that should be registered by this
server.public void addPackage(String packageName)
This is only used if classes have not been explicitly specified.
public List<String> getPackages()
This is only used if classes have not been explicitly specified.
public void setPackages(List<String> packages)
This is only used if classes have not been explicitly specified.
public void setClasses(List<Class<?>> classes)
If no classes are specified then the classes are found automatically via searching the class path.
Alternatively the classes can contain added via addClass(Class)
.
public List<Class<?>> getClasses()
public boolean isSkipCacheAfterWrite()
This defaults to true and means that for "find by id" and "find by natural key" queries that normally hit L2 bean cache automatically will not do so after a write/persist on the transaction.
// assume Customer has L2 bean caching enabled ...
try (Transaction transaction = DB.beginTransaction()) {
// this uses L2 bean cache as the transaction
// ... is considered "query only" at this point
Customer.find.byId(42);
// transaction no longer "query only" once
// ... a bean has been saved etc
DB.save(someBean);
// will NOT use L2 bean cache as the transaction
// ... is no longer considered "query only"
Customer.find.byId(55);
// explicit control - please use L2 bean cache
transaction.setSkipCache(false);
Customer.find.byId(77); // hit the l2 bean cache
// explicit control - please don't use L2 bean cache
transaction.setSkipCache(true);
Customer.find.byId(99); // skips l2 bean cache
}
Transaction.setSkipCache(boolean)
public void setSkipCacheAfterWrite(boolean skipCacheAfterWrite)
public boolean isUpdateChangesOnly()
public void setUpdateChangesOnly(boolean updateChangesOnly)
public boolean isUpdateAllPropertiesInBatch()
public void setUpdateAllPropertiesInBatch(boolean updateAllPropertiesInBatch)
This mode can be explicitly set per transaction.
public boolean isUpdatesDeleteMissingChildren()
public void setUpdatesDeleteMissingChildren(boolean updatesDeleteMissingChildren)
public boolean isCollectQueryStatsByNode()
public void setCollectQueryStatsByNode(boolean collectQueryStatsByNode)
These statistics can be used to highlight code/query 'origin points' that result in lots of lazy loading.
It is considered safe/fine to have this set to true for production.
This information can be later retrieved via MetaInfoManager
.
MetaInfoManager
public boolean isCollectQueryOrigins()
public void setCollectQueryOrigins(boolean collectQueryOrigins)
This information can be later retrieved via MetaInfoManager
.
MetaInfoManager
public String getResourceDirectory()
public void setResourceDirectory(String resourceDirectory)
public void addCustomMapping(DbType type, String columnDefinition, io.ebean.annotation.Platform platform)
// set the default mapping for BigDecimal.class/decimal
serverConfig.addCustomMapping(DbType.DECIMAL, "decimal(18,6)");
// set the default mapping for String.class/varchar but only for Postgres
serverConfig.addCustomMapping(DbType.VARCHAR, "text", Platform.POSTGRES);
type
- The DB type this mapping should apply tocolumnDefinition
- The column definition that should be usedplatform
- Optionally specify the platform this mapping should apply to.public void addCustomMapping(DbType type, String columnDefinition)
// set the default mapping for BigDecimal/decimal
serverConfig.addCustomMapping(DbType.DECIMAL, "decimal(18,6)");
// set the default mapping for String/varchar
serverConfig.addCustomMapping(DbType.VARCHAR, "text");
type
- The DB type this mapping should apply tocolumnDefinition
- The column definition that should be usedpublic void add(BeanQueryAdapter beanQueryAdapter)
Note alternatively you can use setQueryAdapters(List)
to set all
the BeanQueryAdapter instances.
public List<BeanQueryAdapter> getQueryAdapters()
public void setQueryAdapters(List<BeanQueryAdapter> queryAdapters)
Note alternatively you can use add(BeanQueryAdapter)
to add
BeanQueryAdapter instances one at a time.
public List<IdGenerator> getIdGenerators()
public void setIdGenerators(List<IdGenerator> idGenerators)
public void add(IdGenerator idGenerator)
public void add(BeanPersistController beanPersistController)
Note alternatively you can use setPersistControllers(List)
to set
all the BeanPersistController instances.
public void add(BeanPostLoad postLoad)
Note alternatively you can use setPostLoaders(List)
to set
all the BeanPostLoad instances.
public void add(BeanPostConstructListener listener)
Note alternatively you can use setPostConstructListeners(List)
to set
all the BeanPostConstructListener instances.
public List<BeanFindController> getFindControllers()
public void setFindControllers(List<BeanFindController> findControllers)
public List<BeanPostLoad> getPostLoaders()
public void setPostLoaders(List<BeanPostLoad> postLoaders)
public List<BeanPostConstructListener> getPostConstructListeners()
public void setPostConstructListeners(List<BeanPostConstructListener> listeners)
public List<BeanPersistController> getPersistControllers()
public void setPersistControllers(List<BeanPersistController> persistControllers)
Note alternatively you can use add(BeanPersistController)
to add
BeanPersistController instances one at a time.
public void add(BeanPersistListener beanPersistListener)
Note alternatively you can use setPersistListeners(List)
to set
all the BeanPersistListener instances.
public List<BeanPersistListener> getPersistListeners()
public void add(BulkTableEventListener bulkTableEventListener)
public List<BulkTableEventListener> getBulkTableEventListeners()
public void addServerConfigStartup(ServerConfigStartup configStartupListener)
public List<ServerConfigStartup> getServerConfigStartupListeners()
public void setPersistListeners(List<BeanPersistListener> persistListeners)
Note alternatively you can use add(BeanPersistListener)
to add
BeanPersistListener instances one at a time.
public PersistenceContextScope getPersistenceContextScope()
.Query#setPersistenceContextScope(io.ebean.PersistenceContextScope)
. If it
is not set on the query this default scope is used.public void setPersistenceContextScope(PersistenceContextScope persistenceContextScope)
PersistenceContextScope.TRANSACTION
.
The PersistenceContextScope can specified on each query via .Query#setPersistenceContextScope(io.ebean.PersistenceContextScope)
. If it
is not set on the query this scope is used.public ClassLoadConfig getClassLoadConfig()
public void setClassLoadConfig(ClassLoadConfig classLoadConfig)
public <T> ServiceLoader<T> serviceLoad(Class<T> spiService)
public <T> T service(Class<T> spiService)
public void loadFromProperties()
public void loadFromProperties(Properties properties)
public Properties getProperties()
public io.ebean.annotation.PersistBatch appliedPersistBatchOnCascade()
public Object getObjectMapper()
Note that this is not strongly typed as Jackson ObjectMapper is an optional dependency.
public void setObjectMapper(Object objectMapper)
Note that this is not strongly typed as Jackson ObjectMapper is an optional dependency.
public boolean isExpressionEqualsWithNullAsNoop()
public void setExpressionEqualsWithNullAsNoop(boolean expressionEqualsWithNullAsNoop)
Setting this to true has the effect that eq(propertyName, value), ieq(propertyName, value) and ne(propertyName, value) have no effect when the value is null. The expression factory adds a NoopExpression which will add "1=1" into the SQL rather than "is null".
public boolean isExpressionNativeIlike()
public void setExpressionNativeIlike(boolean expressionNativeIlike)
public boolean isDisableL2Cache()
public void setDisableL2Cache(boolean disableL2Cache)
public boolean isUseJavaxValidationNotNull()
public void setUseJavaxValidationNotNull(boolean useJavaxValidationNotNull)
&x64;javax.validation.contstraints.NotNull
with respect to generating a NOT NULL
column.
Normally when Ebean sees javax NotNull annotation it means that column is defined as NOT NULL.
Set this to false
and the javax NotNull annotation is effectively ignored (and
we instead use Ebean's own NotNull annotation or JPA Column(nullable=false) annotation.
public boolean isNotifyL2CacheInForeground()
public void setNotifyL2CacheInForeground(boolean notifyL2CacheInForeground)
In general we don't want to do that as when we use a distributed cache (like Ignite, Hazelcast etc) we are making network calls and we prefer to do this in background and not impact the response time of the executing transaction.
public int getQueryPlanTTLSeconds()
public void setQueryPlanTTLSeconds(int queryPlanTTLSeconds)
public DataSource runDbMigration(DataSource dataSource)
public PlatformConfig newPlatformConfig(String propertiesPath, String platformPrefix)
Typically used in Db Migration generation for many platform targets that might have different configuration for IdType, UUID, quoted identifiers etc.
propertiesPath
- The properties path used for loading and setting propertiesplatformPrefix
- The prefix used for loading and setting propertiespublic void addMappingLocation(String mappingLocation)
public List<String> getMappingLocations()
public void setMappingLocations(List<String> mappingLocations)
This is only used if classes have not been explicitly specified.
public boolean isIdGeneratorAutomatic()
@GeneratedValue
mapping to assign
Identity or Sequence generated values. When true Id properties are automatically
assigned Identity or Sequence without the GeneratedValue mapping.public void setIdGeneratorAutomatic(boolean idGeneratorAutomatic)
@GeneratedValue
mapping before they are assigned Identity or Sequence generation based on platform.public boolean isCollectQueryPlans()
public void setCollectQueryPlans(boolean collectQueryPlans)
Copyright © 2019. All rights reserved.