Interface Session
-
- All Superinterfaces:
CoreSession<ClassDescriptor,Login,org.eclipse.persistence.internal.databaseaccess.Platform,Project,SessionEventManager>
- All Known Subinterfaces:
DatabaseSession
,Server
,UnitOfWork
- All Known Implementing Classes:
org.eclipse.persistence.internal.sessions.AbstractSession
,ClientSession
,org.eclipse.persistence.internal.sessions.DatabaseSessionImpl
,DistributedSession
,RemoteSession
,ServerSession
,SessionBroker
public interface Session extends CoreSession<ClassDescriptor,Login,org.eclipse.persistence.internal.databaseaccess.Platform,Project,SessionEventManager>
Purpose: Define the EclipseLink session public interface.
Description: This interface is meant to clarify the public protocol into EclipseLink. It also allows for non-subclasses of Session to conform to the EclipseLink API. It should be used as the applications main interface into the EclipseLink API to ensure compatibility between all EclipseLink sessions.
Responsibilities:
- Define the API for all reading, units of work.
- See Also:
UnitOfWork
,DatabaseSession
,AbstractSession
,DatabaseSessionImpl
,ServerSession
,ClientSession
-
-
Method Summary
All Methods Instance Methods Abstract Methods Deprecated Methods Modifier and Type Method Description Session
acquireHistoricalSession(AsOfClause pastTime)
ADVANCED: Returns a light weight read-only session where all objects are automatically read as of the specified past time.UnitOfWork
acquireUnitOfWork()
PUBLIC: Return a unit of work for this session.UnitOfWork
acquireUnitOfWork(ReferenceMode referenceMode)
PUBLIC: Return a unit of work for this session.void
addJPAQuery(DatabaseQuery query)
ADVANCED: Add a pre-defined not yet parsed JPQL String/query to the session to be parsed after descriptors are initialized.void
addQuery(java.lang.String name, DatabaseQuery query)
PUBLIC: Add the query to the session queries with the given name.void
clearIntegrityChecker()
PUBLIC: clear the integrityChecker, the integrityChecker holds all the ClassDescriptor Exceptions.void
clearProfile()
PUBLIC: Clear the profiler, this will end the current profile operation.boolean
containsQuery(java.lang.String queryName)
PUBLIC: Return true if the pre-defined query is defined on the session.java.lang.Object
copy(java.lang.Object originalObjectOrObjects)
PUBLIC: Return a complete copy of the object or of collection of objects.java.lang.Object
copy(java.lang.Object originalObjectOrObjects, AttributeGroup group)
PUBLIC: Return a complete copy of the object or collection of objects.java.lang.Object
copyObject(java.lang.Object original)
Deprecated.since EclipseLink 2.1, replaced by copy(Object)java.lang.Object
copyObject(java.lang.Object original, ObjectCopyingPolicy policy)
Deprecated.since EclipseLink 2.1, replaced by copy(Object, AttributeGroup)boolean
doesObjectExist(java.lang.Object object)
PUBLIC: Return if the object exists on the database or not.void
dontLogMessages()
PUBLIC: Turn off loggingint
executeNonSelectingCall(Call call)
PUBLIC: Execute the call on the database.void
executeNonSelectingSQL(java.lang.String sqlString)
PUBLIC: Execute the non-selecting (update/DML) SQL string.java.lang.Object
executeQuery(java.lang.String queryName)
PUBLIC: Execute the pre-defined query by name and return the result.java.lang.Object
executeQuery(java.lang.String queryName, java.lang.Class domainClass)
PUBLIC: Execute the pre-defined query by name and return the result.java.lang.Object
executeQuery(java.lang.String queryName, java.lang.Class domainClass, java.lang.Object arg1)
PUBLIC: Execute the pre-defined query by name and return the result.java.lang.Object
executeQuery(java.lang.String queryName, java.lang.Class domainClass, java.lang.Object arg1, java.lang.Object arg2)
PUBLIC: Execute the pre-defined query by name and return the result.java.lang.Object
executeQuery(java.lang.String queryName, java.lang.Class domainClass, java.lang.Object arg1, java.lang.Object arg2, java.lang.Object arg3)
PUBLIC: Execute the pre-defined query by name and return the result.java.lang.Object
executeQuery(java.lang.String queryName, java.lang.Class domainClass, java.util.List argumentValues)
PUBLIC: Execute the pre-defined query by name and return the result.java.lang.Object
executeQuery(java.lang.String queryName, java.lang.Object arg1)
PUBLIC: Execute the pre-defined query by name and return the result.java.lang.Object
executeQuery(java.lang.String queryName, java.lang.Object arg1, java.lang.Object arg2)
PUBLIC: Execute the pre-defined query by name and return the result.java.lang.Object
executeQuery(java.lang.String queryName, java.lang.Object arg1, java.lang.Object arg2, java.lang.Object arg3)
PUBLIC: Execute the pre-defined query by name and return the result.java.lang.Object
executeQuery(java.lang.String queryName, java.util.List argumentValues)
PUBLIC: Execute the pre-defined query by name and return the result.java.lang.Object
executeQuery(DatabaseQuery query)
PUBLIC: Execute the database query.java.lang.Object
executeQuery(DatabaseQuery query, java.util.List argumentValues)
PUBLIC: Return the results from executing the database query.java.util.Vector
executeSelectingCall(Call call)
PUBLIC: Execute the call on the database and return the result.java.util.Vector
executeSQL(java.lang.String sqlString)
PUBLIC: Execute the selecting SQL string.Session
getActiveSession()
PUBLIC: Return the active session for the current active external (JTS) transaction.UnitOfWork
getActiveUnitOfWork()
PUBLIC: Return the active unit of work for the current active external (JTS) transaction.AsOfClause
getAsOfClause()
ADVANCED: Answers the past time this session is as of.ClassDescriptor
getClassDescriptor(java.lang.Class theClass)
ADVANCED: Return the descriptor specified for the class.ClassDescriptor
getClassDescriptor(java.lang.Object domainObject)
ADVANCED: Return the descriptor specified for the object's class.ClassDescriptor
getClassDescriptorForAlias(java.lang.String alias)
PUBLIC: Return the descriptor for the alias.Login
getDatasourceLogin()
PUBLIC: Return the login, the login holds any database connection information given.org.eclipse.persistence.internal.databaseaccess.Platform
getDatasourcePlatform()
PUBLIC: Return the database platform currently connected to.ReferenceMode
getDefaultReferenceMode()
Stores the default Session wide reference mode that a UnitOfWork will use when referencing managed objects.ClassDescriptor
getDescriptor(java.lang.Class theClass)
ADVANCED: Return the descriptor specified for the class.ClassDescriptor
getDescriptor(java.lang.Object domainObject)
ADVANCED: Return the descriptor specified for the object's class.ClassDescriptor
getDescriptorForAlias(java.lang.String alias)
PUBLIC: Return the descriptor for the alias.java.util.Map<java.lang.Class,ClassDescriptor>
getDescriptors()
ADVANCED: Return all registered descriptors.SessionEventManager
getEventManager()
PUBLIC: Return the event manager.ExceptionHandler
getExceptionHandler()
PUBLIC: Return the ExceptionHandler.Exception handler can catch errors that occur on queries or during database access.ExternalTransactionController
getExternalTransactionController()
PUBLIC: Used for JTS integration.java.lang.Object
getId(java.lang.Object domainObject)
ADVANCED: Extract and return the Id from the object.IdentityMapAccessor
getIdentityMapAccessor()
PUBLIC: The IdentityMapAccessor is the preferred way of accessing IdentityMap functions This will return an object which implements an interface which exposes all public IdentityMap functions.IntegrityChecker
getIntegrityChecker()
PUBLIC: Returns the integrityChecker,the integrityChecker holds all the ClassDescriptor Exceptions.java.util.List<DatabaseQuery>
getJPAQueries()
ADVANCED: Return all pre-defined not yet parsed EJBQL queries.java.io.Writer
getLog()
PUBLIC: Return the writer to which an accessor writes logged messages and SQL.DatabaseLogin
getLogin()
PUBLIC: Return the login, the login holds any database connection information given.int
getLogLevel()
PUBLIC: Return the log level.int
getLogLevel(java.lang.String category)
PUBLIC: Return the log level.java.lang.String
getName()
PUBLIC: Return the name of the session.java.lang.Number
getNextSequenceNumberValue(java.lang.Class domainClass)
ADVANCED: Return the sequence number from the database.PartitioningPolicy
getPartitioningPolicy()
PUBLIC: Return the session's partitioning policy.DatabasePlatform
getPlatform()
PUBLIC: Return the database platform currently connected to.SessionProfiler
getProfiler()
PUBLIC: Return the profiler.Project
getProject()
PUBLIC: Return the project.java.util.Map<java.lang.String,java.lang.Object>
getProperties()
ADVANCED: Allow for user defined properties.java.lang.Object
getProperty(java.lang.String name)
ADVANCED: Returns the user defined property.java.util.Map<java.lang.String,java.util.List<DatabaseQuery>>
getQueries()
ADVANCED: Return all pre-defined queries.DatabaseQuery
getQuery(java.lang.String name)
PUBLIC: Return the query from the session pre-defined queries with the given name.DatabaseQuery
getQuery(java.lang.String name, java.util.List arguments)
PUBLIC: Return the query from the session pre-defined queries with the given name.Serializer
getSerializer()
Return the Serializer to use by default for serialization.ServerPlatform
getServerPlatform()
PUBLIC: Return the server platform currently used.SessionLog
getSessionLog()
PUBLIC: Return the session log to which an accessor logs messages and SQL.java.lang.Object
handleException(java.lang.RuntimeException exception)
PUBLIC: Allow any WARNING level exceptions that occur within EclipseLink to be logged and handled by the exception handler.java.lang.Object
handleSevere(java.lang.RuntimeException exception)
PUBLIC: Allow any SEVERE level exceptions that occur within EclipseLink to be logged and handled by the exception handler.boolean
hasDescriptor(java.lang.Class theClass)
ADVANCED: Return true if a descriptor exists for the given class.boolean
hasExceptionHandler()
PUBLIC: Return if an exception handler is present.boolean
hasExternalTransactionController()
PUBLIC: Used for JTS integration.boolean
isClientSession()
PUBLIC: Return if this session is a client session.boolean
isConnected()
PUBLIC: Return if this session is connected to the database.boolean
isDatabaseSession()
PUBLIC: Return if this session is a database session.boolean
isDistributedSession()
PUBLIC: Return if this session is a distributed session.boolean
isFinalizersEnabled()
PUBLIC: Return if this session's descendants should use finalizers.boolean
isInProfile()
PUBLIC: Return if a profiler is being used.boolean
isRemoteSession()
PUBLIC: Return if this session is a remote session.boolean
isRemoteUnitOfWork()
PUBLIC: Return if this session is a remote unit of work.boolean
isServerSession()
PUBLIC: Return if this session is a server session.boolean
isSessionBroker()
PUBLIC: Return if this session is a session broker.boolean
isUnitOfWork()
PUBLIC: Return if this session is a unit of work.java.util.Vector
keyFromObject(java.lang.Object domainObject)
Deprecated.since EclipseLink 2.1, replaced by getId(Object)void
log(SessionLogEntry entry)
PUBLIC: Log the log entry.void
logMessage(java.lang.String message)
Log a untranslated message to the EclipseLink log at FINER level.java.util.Vector
readAllObjects(java.lang.Class domainClass)
PUBLIC: Read all of the instances of the class from the database.java.util.Vector
readAllObjects(java.lang.Class domainClass, Expression selectionCriteria)
PUBLIC: Read all of the instances of the class from the database matching the given expression.java.util.Vector
readAllObjects(java.lang.Class domainClass, Call aCall)
PUBLIC: Read all the instances of the class from the database returned through execution the Call string.java.lang.Object
readObject(java.lang.Class domainClass)
PUBLIC: Read the first instance of the class from the database.java.lang.Object
readObject(java.lang.Class domainClass, Expression selectionCriteria)
PUBLIC: Read the first instance of the class from the database matching the given expression.java.lang.Object
readObject(java.lang.Class domainClass, Call aCall)
PUBLIC: Read the first instance of the class from the database returned through execution the Call string.java.lang.Object
readObject(java.lang.Object object)
PUBLIC: Use the example object to construct a read object query by the objects primary key.java.lang.Object
refreshObject(java.lang.Object object)
PUBLIC: Refresh the attributes of the object and of all of its private parts from the database.void
release()
PUBLIC: Release the session.void
removeProperty(java.lang.String property)
PUBLIC: Remove the user defined property.void
removeQuery(java.lang.String queryName)
PUBLIC: Remove the query name from the set of pre-defined queriesvoid
setDefaultReferenceMode(ReferenceMode defaultReferenceMode)
Stores the default Session wide reference mode that a UnitOfWork will use when referencing managed objects.void
setExceptionHandler(ExceptionHandler exceptionHandler)
PUBLIC: Set the exceptionHandler.void
setExternalTransactionController(ExternalTransactionController externalTransactionController)
OBSOLETE: Previously used for JTS integration.void
setIntegrityChecker(IntegrityChecker integrityChecker)
PUBLIC: Set the integrityChecker, the integrityChecker holds all the ClassDescriptor Exceptions.void
setIsFinalizersEnabled(boolean isFinalizersEnabled)
PUBLIC: Set if this session's descendants should use finalizers.void
setLog(java.io.Writer log)
PUBLIC: Set the writer to which an accessor writes logged messages and SQL.void
setLogLevel(int level)
PUBLIC: Set the log level.void
setName(java.lang.String name)
PUBLIC: Set the name of the session.void
setPartitioningPolicy(PartitioningPolicy partitioningPolicy)
PUBLIC: Set the session's partitioning policy.void
setProfiler(SessionProfiler profiler)
PUBLIC: Set the profiler for the session.void
setProperty(java.lang.String propertyName, java.lang.Object propertyValue)
PUBLIC: Allow for user defined properties.void
setQueryTimeoutDefault(int queryTimeoutDefault)
PUBLIC: Set the default query timeout for this session.void
setQueryTimeoutUnitDefault(java.util.concurrent.TimeUnit queryTimeoutDefault)
PUBLIC: Set the default query timeout units for this session.void
setSerializer(Serializer serializer)
Set the Serializer to use by default for serialization.void
setSessionLog(SessionLog sessionLog)
PUBLIC: Set the session log to which an accessor logs messages and SQL.boolean
shouldLog(int Level, java.lang.String category)
PUBLIC: Check if a message of the given level would actually be logged.boolean
shouldLogMessages()
PUBLIC: Return if logging is enabled (false if log level is OFF)void
validateCache()
ADVANCED: This can be used to help debugging an object identity problem.
-
-
-
Method Detail
-
acquireHistoricalSession
Session acquireHistoricalSession(AsOfClause pastTime)
ADVANCED: Returns a light weight read-only session where all objects are automatically read as of the specified past time.Use this Session to take advantage of Oracle 9 Release 2 Flashback or EclipseLink general history support and still be able to cache query results.
A special historical session is required as all objects read may be of different versions than those stored in the global session cache. Hence also known as IsolationSession, as all reads bypass the global cache.
An AsOfClause at the Session level will override any clauses set at the query or expression levels.
Example: Using a historical session to read past versions of objects.
AsOfClause pastTime = new AsOfClause(System.currentTimeMillis() - 24*60*60*1000); Session historicalSession = session.acquireSessionAsOf(pastTime); Employee pastEmployee = (Employee)historicalSession.readObject(Employee.class); Address pastAddress = pastEmployee.getAddress(); Vector pastProjects = pastEmployee.getProjects(); historicalSession.release();
Example: Using the above past employee to recover objects.
UnitOfWork uow = baseSession.acquireUnitOfWork(); Employee presentClone = (Employee)uow.readObject(pastEmployee); uow.deepMergeClone(pastEmployee); uow.commit();
By definition all data as of a past time is frozen. So this session is also ideal for read consistent queries and read only transactions, as all queries will be against a consistent and immutable snap shot of the data.
- Parameters:
pastTime
- Represents a valid snap shot time.- Throws:
ValidationException
- ifthis
not a ClientSession, plain Session, or SessionBroker.- See Also:
AsOfClause
,Expression.asOf(org.eclipse.persistence.history.AsOfClause)
,ObjectLevelReadQuery.setAsOfClause(org.eclipse.persistence.history.AsOfClause)
,HistoryPolicy
-
acquireUnitOfWork
UnitOfWork acquireUnitOfWork()
PUBLIC: Return a unit of work for this session. The unit of work is an object level transaction that allows a group of changes to be applied as a unit. The return value should be used as the org.eclipse.persistence.sessions.UnitOfWork interface- See Also:
UnitOfWork
-
acquireUnitOfWork
UnitOfWork acquireUnitOfWork(ReferenceMode referenceMode)
PUBLIC: Return a unit of work for this session. The unit of work is an object level transaction that allows a group of changes to be applied as a unit.- Parameters:
referenceMode
- The reference type the UOW should use internally when referencing Working clones. Setting this to WEAK means the UOW will use weak references to reference clones that support active object change tracking and hard references for deferred change tracked objects. Setting to FORCE_WEAK means that all objects will be referenced by weak references and if the application no longer references the clone the clone may be garbage collected. If the clone has uncommitted changes then those changes will be lost.- See Also:
UnitOfWorkImpl
-
addQuery
void addQuery(java.lang.String name, DatabaseQuery query)
PUBLIC: Add the query to the session queries with the given name. This allows for common queries to be pre-defined, reused and executed by name.
-
addJPAQuery
void addJPAQuery(DatabaseQuery query)
ADVANCED: Add a pre-defined not yet parsed JPQL String/query to the session to be parsed after descriptors are initialized.
-
clearIntegrityChecker
void clearIntegrityChecker()
PUBLIC: clear the integrityChecker, the integrityChecker holds all the ClassDescriptor Exceptions.
-
clearProfile
void clearProfile()
PUBLIC: Clear the profiler, this will end the current profile operation.
-
containsQuery
boolean containsQuery(java.lang.String queryName)
PUBLIC: Return true if the pre-defined query is defined on the session.
-
copy
java.lang.Object copy(java.lang.Object originalObjectOrObjects)
PUBLIC: Return a complete copy of the object or of collection of objects. In case of collection all members should be either entities of the same type or have a common inheritance hierarchy mapped root class. This can be used to obtain a scratch copy of an object, or for templatizing an existing object into another new object. The object and all of its privately owned parts will be copied.- See Also:
copy(Object, AttributeGroup)
-
copy
java.lang.Object copy(java.lang.Object originalObjectOrObjects, AttributeGroup group)
PUBLIC: Return a complete copy of the object or collection of objects. In case of collection all members should be either entities of the same type or have a common inheritance hierarchy mapped root class. This can be used to obtain a scratch copy of an object, or for templatizing an existing object into another new object. If there are no attributes in the group then the object and all of its privately owned parts will be copied. Otherwise only the attributes included into the group will be copied.
-
copyObject
java.lang.Object copyObject(java.lang.Object original)
Deprecated.since EclipseLink 2.1, replaced by copy(Object)PUBLIC: Return a complete copy of the object. This can be used to obtain a scratch copy of an object, or for templatizing an existing object into another new object. The object and all of its privately owned parts will be copied, the object's primary key will be reset to null.
-
copyObject
java.lang.Object copyObject(java.lang.Object original, ObjectCopyingPolicy policy)
Deprecated.since EclipseLink 2.1, replaced by copy(Object, AttributeGroup)PUBLIC: Return a complete copy of the object. This can be used to obtain a scratch copy of an object, or for templatizing an existing object into another new object. The object copying policy allow for the depth, and reseting of the primary key to null, to be specified.- See Also:
copy(Object, AttributeGroup)
-
doesObjectExist
boolean doesObjectExist(java.lang.Object object) throws DatabaseException
PUBLIC: Return if the object exists on the database or not. This always checks existence on the database.- Throws:
DatabaseException
-
dontLogMessages
void dontLogMessages()
PUBLIC: Turn off logging
-
executeNonSelectingCall
int executeNonSelectingCall(Call call)
PUBLIC: Execute the call on the database. The row count is returned. The call can be a stored procedure call, SQL call or other type of call.Example:
session.executeNonSelectingCall(new SQLCall("Delete from Employee");
- See Also:
executeSelectingCall(Call)
-
executeNonSelectingSQL
void executeNonSelectingSQL(java.lang.String sqlString)
PUBLIC: Execute the non-selecting (update/DML) SQL string. Warning: Allowing an unverified SQL string to be passed into this method makes your application vulnerable to SQL injection attacks.
-
executeQuery
java.lang.Object executeQuery(java.lang.String queryName)
PUBLIC: Execute the pre-defined query by name and return the result. Queries can be pre-defined and named to allow for their reuse.- See Also:
addQuery(String, DatabaseQuery)
-
executeQuery
java.lang.Object executeQuery(java.lang.String queryName, java.lang.Class domainClass)
PUBLIC: Execute the pre-defined query by name and return the result. Queries can be pre-defined and named to allow for their reuse. The class is the descriptor in which the query was pre-defined.
-
executeQuery
java.lang.Object executeQuery(java.lang.String queryName, java.lang.Class domainClass, java.lang.Object arg1)
PUBLIC: Execute the pre-defined query by name and return the result. Queries can be pre-defined and named to allow for their reuse. The class is the descriptor in which the query was pre-defined.
-
executeQuery
java.lang.Object executeQuery(java.lang.String queryName, java.lang.Class domainClass, java.lang.Object arg1, java.lang.Object arg2)
PUBLIC: Execute the pre-defined query by name and return the result. Queries can be pre-defined and named to allow for their reuse. The class is the descriptor in which the query was pre-defined.
-
executeQuery
java.lang.Object executeQuery(java.lang.String queryName, java.lang.Class domainClass, java.lang.Object arg1, java.lang.Object arg2, java.lang.Object arg3)
PUBLIC: Execute the pre-defined query by name and return the result. Queries can be pre-defined and named to allow for their reuse. The class is the descriptor in which the query was pre-defined.
-
executeQuery
java.lang.Object executeQuery(java.lang.String queryName, java.lang.Class domainClass, java.util.List argumentValues)
PUBLIC: Execute the pre-defined query by name and return the result. Queries can be pre-defined and named to allow for their reuse. The class is the descriptor in which the query was pre-defined.
-
executeQuery
java.lang.Object executeQuery(java.lang.String queryName, java.lang.Object arg1)
PUBLIC: Execute the pre-defined query by name and return the result. Queries can be pre-defined and named to allow for their reuse.- See Also:
addQuery(String, DatabaseQuery)
-
executeQuery
java.lang.Object executeQuery(java.lang.String queryName, java.lang.Object arg1, java.lang.Object arg2)
PUBLIC: Execute the pre-defined query by name and return the result. Queries can be pre-defined and named to allow for their reuse.- See Also:
addQuery(String, DatabaseQuery)
-
executeQuery
java.lang.Object executeQuery(java.lang.String queryName, java.lang.Object arg1, java.lang.Object arg2, java.lang.Object arg3)
PUBLIC: Execute the pre-defined query by name and return the result. Queries can be pre-defined and named to allow for their reuse.- See Also:
addQuery(String, DatabaseQuery)
-
executeQuery
java.lang.Object executeQuery(java.lang.String queryName, java.util.List argumentValues)
PUBLIC: Execute the pre-defined query by name and return the result. Queries can be pre-defined and named to allow for their reuse.- See Also:
addQuery(String, DatabaseQuery)
-
executeQuery
java.lang.Object executeQuery(DatabaseQuery query) throws EclipseLinkException
PUBLIC: Execute the database query. A query is a database operation such as reading or writing. The query allows for the operation to be customized for such things as, performance, depth, caching, etc.- Throws:
EclipseLinkException
- See Also:
DatabaseQuery
-
executeQuery
java.lang.Object executeQuery(DatabaseQuery query, java.util.List argumentValues)
PUBLIC: Return the results from executing the database query. the arguments are passed in as a vector
-
executeSelectingCall
java.util.Vector executeSelectingCall(Call call)
PUBLIC: Execute the call on the database and return the result. The call must return a value, if no value is return executeNonSelectCall must be used. The call can be a stored procedure call, SQL call or other type of call. A vector of database rows is returned, database row implements Java 2 Map which should be used to access the data.Example:
session.executeSelectingCall(new SQLCall("Select * from Employee");
- See Also:
executeNonSelectingCall(Call)
-
executeSQL
java.util.Vector executeSQL(java.lang.String sqlString)
PUBLIC: Execute the selecting SQL string. A Vector of DatabaseRecords are returned. Warning: Allowing an unverified SQL string to be passed into this method makes your application vulnerable to SQL injection attacks.
-
getActiveSession
Session getActiveSession()
PUBLIC: Return the active session for the current active external (JTS) transaction. This should only be used with JTS and will return the session if no external transaction exists.
-
getActiveUnitOfWork
UnitOfWork getActiveUnitOfWork()
PUBLIC: Return the active unit of work for the current active external (JTS) transaction. This should only be used with JTS and will return null if no external transaction exists.
-
getClassDescriptor
ClassDescriptor getClassDescriptor(java.lang.Class theClass)
ADVANCED: Return the descriptor specified for the class. If the class does not have a descriptor but implements an interface that is also implemented by one of the classes stored in the map, that descriptor will be stored under the new class.
-
getClassDescriptor
ClassDescriptor getClassDescriptor(java.lang.Object domainObject)
ADVANCED: Return the descriptor specified for the object's class.
-
getClassDescriptorForAlias
ClassDescriptor getClassDescriptorForAlias(java.lang.String alias)
PUBLIC: Return the descriptor for the alias.
-
getAsOfClause
AsOfClause getAsOfClause()
ADVANCED: Answers the past time this session is as of. Indicates whether or not this is a special historical session where all objects are read relative to a particular point in time.- Returns:
- An immutable object representation of the past time.
null
if no clause set, or this a regular session. - See Also:
acquireHistoricalSession(org.eclipse.persistence.history.AsOfClause)
-
getDefaultReferenceMode
ReferenceMode getDefaultReferenceMode()
Stores the default Session wide reference mode that a UnitOfWork will use when referencing managed objects.- See Also:
ReferenceMode
-
getDescriptor
ClassDescriptor getDescriptor(java.lang.Class theClass)
ADVANCED: Return the descriptor specified for the class. If the class does not have a descriptor but implements an interface that is also implemented by one of the classes stored in the map, that descriptor will be stored under the new class.- Specified by:
getDescriptor
in interfaceCoreSession<ClassDescriptor,Login,org.eclipse.persistence.internal.databaseaccess.Platform,Project,SessionEventManager>
-
getDescriptor
ClassDescriptor getDescriptor(java.lang.Object domainObject)
ADVANCED: Return the descriptor specified for the object's class.- Specified by:
getDescriptor
in interfaceCoreSession<ClassDescriptor,Login,org.eclipse.persistence.internal.databaseaccess.Platform,Project,SessionEventManager>
-
getDescriptorForAlias
ClassDescriptor getDescriptorForAlias(java.lang.String alias)
PUBLIC: Return the descriptor for the alias. UnitOfWork delegates this to the parent
-
getDescriptors
java.util.Map<java.lang.Class,ClassDescriptor> getDescriptors()
ADVANCED: Return all registered descriptors.- Specified by:
getDescriptors
in interfaceCoreSession<ClassDescriptor,Login,org.eclipse.persistence.internal.databaseaccess.Platform,Project,SessionEventManager>
-
getJPAQueries
java.util.List<DatabaseQuery> getJPAQueries()
ADVANCED: Return all pre-defined not yet parsed EJBQL queries.
-
getEventManager
SessionEventManager getEventManager()
PUBLIC: Return the event manager. The event manager can be used to register for various session events.- Specified by:
getEventManager
in interfaceCoreSession<ClassDescriptor,Login,org.eclipse.persistence.internal.databaseaccess.Platform,Project,SessionEventManager>
-
getExceptionHandler
ExceptionHandler getExceptionHandler()
PUBLIC: Return the ExceptionHandler.Exception handler can catch errors that occur on queries or during database access.
-
getExternalTransactionController
ExternalTransactionController getExternalTransactionController()
PUBLIC: Used for JTS integration. If your application requires to have JTS control transactions instead of EclipseLink an external transaction controller must be specified. EclipseLink provides JTS controllers for JTS 1.0 and Weblogic's JTS.- See Also:
JTATransactionController
-
getIdentityMapAccessor
IdentityMapAccessor getIdentityMapAccessor()
PUBLIC: The IdentityMapAccessor is the preferred way of accessing IdentityMap functions This will return an object which implements an interface which exposes all public IdentityMap functions.
-
getIntegrityChecker
IntegrityChecker getIntegrityChecker()
PUBLIC: Returns the integrityChecker,the integrityChecker holds all the ClassDescriptor Exceptions.
-
getLog
java.io.Writer getLog()
PUBLIC: Return the writer to which an accessor writes logged messages and SQL. If not set, this reference defaults to a writer on System.out. To enable logging logMessages must be turned on.- See Also:
logMessage(java.lang.String)
-
getPlatform
DatabasePlatform getPlatform()
PUBLIC: Return the database platform currently connected to. The platform is used for database specific behavior. NOTE: this must only be used for relational specific usage, it will fail for non-relational datasources.
-
getDatasourcePlatform
org.eclipse.persistence.internal.databaseaccess.Platform getDatasourcePlatform()
PUBLIC: Return the database platform currently connected to. The platform is used for database specific behavior.- Specified by:
getDatasourcePlatform
in interfaceCoreSession<ClassDescriptor,Login,org.eclipse.persistence.internal.databaseaccess.Platform,Project,SessionEventManager>
-
getLogin
DatabaseLogin getLogin()
PUBLIC: Return the login, the login holds any database connection information given. NOTE: this must only be used for relational specific usage, it will fail for non-relational datasources.
-
getDatasourceLogin
Login getDatasourceLogin()
PUBLIC: Return the login, the login holds any database connection information given. This return the Login interface and may need to be cast to the datasource specific implementation.- Specified by:
getDatasourceLogin
in interfaceCoreSession<ClassDescriptor,Login,org.eclipse.persistence.internal.databaseaccess.Platform,Project,SessionEventManager>
-
getName
java.lang.String getName()
PUBLIC: Return the name of the session. This is used with the session broker, or to give the session a more meaningful name.
-
getNextSequenceNumberValue
java.lang.Number getNextSequenceNumberValue(java.lang.Class domainClass)
ADVANCED: Return the sequence number from the database.
-
getProfiler
SessionProfiler getProfiler()
PUBLIC: Return the profiler. The profiler is a tool that can be used to determine performance bottlenecks. The profiler can be queries to print summaries and configure for logging purposes.
-
getProject
Project getProject()
PUBLIC: Return the project. The project includes the login and descriptor and other configuration information.- Specified by:
getProject
in interfaceCoreSession<ClassDescriptor,Login,org.eclipse.persistence.internal.databaseaccess.Platform,Project,SessionEventManager>
-
getProperties
java.util.Map<java.lang.String,java.lang.Object> getProperties()
ADVANCED: Allow for user defined properties.
-
getProperty
java.lang.Object getProperty(java.lang.String name)
ADVANCED: Returns the user defined property.
-
getQueries
java.util.Map<java.lang.String,java.util.List<DatabaseQuery>> getQueries()
ADVANCED: Return all pre-defined queries.
-
getQuery
DatabaseQuery getQuery(java.lang.String name)
PUBLIC: Return the query from the session pre-defined queries with the given name. This allows for common queries to be pre-defined, reused and executed by name.
-
getQuery
DatabaseQuery getQuery(java.lang.String name, java.util.List arguments)
PUBLIC: Return the query from the session pre-defined queries with the given name. This allows for common queries to be pre-defined, reused and executed by name.
-
getServerPlatform
ServerPlatform getServerPlatform()
PUBLIC: Return the server platform currently used. The server platform is used for application server specific behavior.
-
getSessionLog
SessionLog getSessionLog()
PUBLIC: Return the session log to which an accessor logs messages and SQL. If not set, this will default to a session log on a writer on System.out. To enable logging, logMessages must be turned on.- See Also:
logMessage(java.lang.String)
-
handleException
java.lang.Object handleException(java.lang.RuntimeException exception) throws java.lang.RuntimeException
PUBLIC: Allow any WARNING level exceptions that occur within EclipseLink to be logged and handled by the exception handler.- Throws:
java.lang.RuntimeException
-
hasDescriptor
boolean hasDescriptor(java.lang.Class theClass)
ADVANCED: Return true if a descriptor exists for the given class.
-
hasExceptionHandler
boolean hasExceptionHandler()
PUBLIC: Return if an exception handler is present.
-
hasExternalTransactionController
boolean hasExternalTransactionController()
PUBLIC: Used for JTS integration. If your application requires to have JTS control transactions instead of EclipseLink an external transaction controller must be specified. EclipseLink provides JTS controllers for JTS 1.0 and Weblogic's JTS.- See Also:
JTATransactionController
-
isClientSession
boolean isClientSession()
PUBLIC: Return if this session is a client session.
-
isConnected
boolean isConnected()
PUBLIC: Return if this session is connected to the database.
-
isDatabaseSession
boolean isDatabaseSession()
PUBLIC: Return if this session is a database session.
-
isDistributedSession
boolean isDistributedSession()
PUBLIC: Return if this session is a distributed session.
-
isInProfile
boolean isInProfile()
PUBLIC: Return if a profiler is being used.
-
isRemoteSession
boolean isRemoteSession()
PUBLIC: Return if this session is a remote session.
-
isServerSession
boolean isServerSession()
PUBLIC: Return if this session is a server session.
-
isSessionBroker
boolean isSessionBroker()
PUBLIC: Return if this session is a session broker.
-
isUnitOfWork
boolean isUnitOfWork()
PUBLIC: Return if this session is a unit of work.
-
isRemoteUnitOfWork
boolean isRemoteUnitOfWork()
PUBLIC: Return if this session is a remote unit of work.
-
getId
java.lang.Object getId(java.lang.Object domainObject) throws ValidationException
ADVANCED: Extract and return the Id from the object.- Throws:
ValidationException
-
keyFromObject
@Deprecated java.util.Vector keyFromObject(java.lang.Object domainObject) throws ValidationException
Deprecated.since EclipseLink 2.1, replaced by getId(Object)ADVANCED: Extract and return the primary key from the object.- Throws:
ValidationException
- See Also:
getId(Object)
-
log
void log(SessionLogEntry entry)
PUBLIC: Log the log entry.
-
logMessage
void logMessage(java.lang.String message)
Log a untranslated message to the EclipseLink log at FINER level.
-
readAllObjects
java.util.Vector readAllObjects(java.lang.Class domainClass) throws DatabaseException
PUBLIC: Read all of the instances of the class from the database. This operation can be customized through using a ReadAllQuery, or through also passing in a selection criteria.- Throws:
DatabaseException
- See Also:
ReadAllQuery
,readAllObjects(Class, Expression)
-
readAllObjects
java.util.Vector readAllObjects(java.lang.Class domainClass, Call aCall) throws DatabaseException
PUBLIC: Read all the instances of the class from the database returned through execution the Call string. The Call can be an SQLCall or JPQLCall. example: session.readAllObjects(Employee.class, new SQLCall("SELECT * FROM EMPLOYEE"));- Throws:
DatabaseException
- See Also:
SQLCall
,JPQLCall
-
readAllObjects
java.util.Vector readAllObjects(java.lang.Class domainClass, Expression selectionCriteria) throws DatabaseException
PUBLIC: Read all of the instances of the class from the database matching the given expression. This operation can be customized through using a ReadAllQuery.- Throws:
DatabaseException
- See Also:
ReadAllQuery
-
readObject
java.lang.Object readObject(java.lang.Class domainClass) throws DatabaseException
PUBLIC: Read the first instance of the class from the database. This operation can be customized through using a ReadObjectQuery, or through also passing in a selection criteria. By default, this method executes a query without selection criteria and consequently it will always result in a database access even if an instance of the specified Class exists in the cache. Executing a query with selection criteria allows you to avoid a database access if the selected instance is in the cache. Because of this, you may wish to consider a readObject method that takes selection criteria, such as:readObject(Class, Call)
,readObject(Class, Expression)
, orreadObject(Object)
.- Throws:
DatabaseException
- See Also:
ReadObjectQuery
,readAllObjects(Class, Expression)
-
readObject
java.lang.Object readObject(java.lang.Class domainClass, Call aCall) throws DatabaseException
PUBLIC: Read the first instance of the class from the database returned through execution the Call string. The Call can be an SQLCall or JPQLCall. example: session.readObject(Employee.class, new SQLCall("SELECT * FROM EMPLOYEE"));- Throws:
DatabaseException
- See Also:
SQLCall
,JPQLCall
-
readObject
java.lang.Object readObject(java.lang.Class domainClass, Expression selectionCriteria) throws DatabaseException
PUBLIC: Read the first instance of the class from the database matching the given expression. This operation can be customized through using a ReadObjectQuery.- Throws:
DatabaseException
- See Also:
ReadObjectQuery
-
readObject
java.lang.Object readObject(java.lang.Object object) throws DatabaseException
PUBLIC: Use the example object to construct a read object query by the objects primary key. This will read the object from the database with the same primary key as the object or null if no object is found.- Throws:
DatabaseException
-
refreshObject
java.lang.Object refreshObject(java.lang.Object object)
PUBLIC: Refresh the attributes of the object and of all of its private parts from the database. This can be used to ensure the object is up to date with the database. Caution should be used when using this to make sure the application has no uncommitted changes to the object.
-
release
void release()
PUBLIC: Release the session. This does nothing by default, but allows for other sessions such as the ClientSession to do something.
-
removeProperty
void removeProperty(java.lang.String property)
PUBLIC: Remove the user defined property.
-
removeQuery
void removeQuery(java.lang.String queryName)
PUBLIC: Remove the query name from the set of pre-defined queries
-
setDefaultReferenceMode
void setDefaultReferenceMode(ReferenceMode defaultReferenceMode)
Stores the default Session wide reference mode that a UnitOfWork will use when referencing managed objects.- See Also:
ReferenceMode
-
setExceptionHandler
void setExceptionHandler(ExceptionHandler exceptionHandler)
PUBLIC: Set the exceptionHandler. Exception handler can catch errors that occur on queries or during database access.
-
setExternalTransactionController
void setExternalTransactionController(ExternalTransactionController externalTransactionController)
OBSOLETE: Previously used for JTS integration. If your application requires to have JTS control transactions a ServerPlatform must be specified before login, either via your sessions.xml or in code. A subclass of ServerPlatformBase should handle your requirements. If not, we suggest creating your own subclass of ServerPlatformBase to specify the external transaction controller class.- See Also:
CustomServerPlatform
-
setIntegrityChecker
void setIntegrityChecker(IntegrityChecker integrityChecker)
PUBLIC: Set the integrityChecker, the integrityChecker holds all the ClassDescriptor Exceptions.
-
setLog
void setLog(java.io.Writer log)
PUBLIC: Set the writer to which an accessor writes logged messages and SQL. If not set, this reference defaults to a writer on System.out. To enable logging logMessages() is used.- See Also:
logMessage(java.lang.String)
-
setName
void setName(java.lang.String name)
PUBLIC: Set the name of the session. This is used with the session broker, or to give the session a more meaningful name.
-
setProfiler
void setProfiler(SessionProfiler profiler)
PUBLIC: Set the profiler for the session. This allows for performance operations to be profiled.
-
setProperty
void setProperty(java.lang.String propertyName, java.lang.Object propertyValue)
PUBLIC: Allow for user defined properties.
-
setSessionLog
void setSessionLog(SessionLog sessionLog)
PUBLIC: Set the session log to which an accessor logs messages and SQL. If not set, this will default to a session log on a writer on System.out. To enable logging, logMessages must be turned on.- See Also:
logMessage(java.lang.String)
-
shouldLogMessages
boolean shouldLogMessages()
PUBLIC: Return if logging is enabled (false if log level is OFF)
-
validateCache
void validateCache()
ADVANCED: This can be used to help debugging an object identity problem. An object identity problem is when an object in the cache references an object not in the cache. This method will validate that all cached objects are in a correct state.
-
getLogLevel
int getLogLevel(java.lang.String category)
PUBLIC: Return the log level.
Possible values for log level and category are listed in SessionLog.- See Also:
SessionLog
-
getLogLevel
int getLogLevel()
PUBLIC: Return the log level.
Possible values for log level are listed in SessionLog.- See Also:
SessionLog
-
setLogLevel
void setLogLevel(int level)
PUBLIC: Set the log level.
Possible values for log level are listed in SessionLog.- Specified by:
setLogLevel
in interfaceCoreSession<ClassDescriptor,Login,org.eclipse.persistence.internal.databaseaccess.Platform,Project,SessionEventManager>
- See Also:
SessionLog
-
shouldLog
boolean shouldLog(int Level, java.lang.String category)
PUBLIC: Check if a message of the given level would actually be logged.
Possible values for log level and category are listed in SessionLog.- See Also:
SessionLog
-
handleSevere
java.lang.Object handleSevere(java.lang.RuntimeException exception) throws java.lang.RuntimeException
PUBLIC: Allow any SEVERE level exceptions that occur within EclipseLink to be logged and handled by the exception handler.- Throws:
java.lang.RuntimeException
-
isFinalizersEnabled
boolean isFinalizersEnabled()
PUBLIC: Return if this session's descendants should use finalizers. The allows certain finalizers such as in ClientSession to be enabled. These are disable by default for performance reasons.
-
setIsFinalizersEnabled
void setIsFinalizersEnabled(boolean isFinalizersEnabled)
PUBLIC: Set if this session's descendants should use finalizers. The allows certain finalizers such as in ClientSession to be enabled. These are disable by default for performance reasons.
-
setQueryTimeoutDefault
void setQueryTimeoutDefault(int queryTimeoutDefault)
PUBLIC: Set the default query timeout for this session. This timeout will apply to any queries that do not have a timeout set, and that do not have a default timeout defined in their descriptor.
-
setQueryTimeoutUnitDefault
void setQueryTimeoutUnitDefault(java.util.concurrent.TimeUnit queryTimeoutDefault)
PUBLIC: Set the default query timeout units for this session. This timeout unit will apply to any queries that do not have a unit value set, and that do not have a default timeout unit defined in their descriptor.
-
getPartitioningPolicy
PartitioningPolicy getPartitioningPolicy()
PUBLIC: Return the session's partitioning policy.
-
setPartitioningPolicy
void setPartitioningPolicy(PartitioningPolicy partitioningPolicy)
PUBLIC: Set the session's partitioning policy. A PartitioningPolicy is used to partition, load-balance or replicate data across multiple difference databases or across a database cluster such as Oracle RAC. Partitioning can provide improved scalability by allowing multiple database machines to service requests.
-
getSerializer
Serializer getSerializer()
Return the Serializer to use by default for serialization.
-
setSerializer
void setSerializer(Serializer serializer)
Set the Serializer to use by default for serialization.
-
-