|
EclipseLink 1.2.0, build 'v20091016-r5565' API Reference | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
public interface Session
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:
UnitOfWork
,
DatabaseSession
,
AbstractSession
,
DatabaseSessionImpl
,
ServerSession
,
ClientSession
Method Summary | |
---|---|
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 |
copyObject(java.lang.Object original)
PUBLIC: Return a complete copy of the object. |
java.lang.Object |
copyObject(java.lang.Object original,
ObjectCopyingPolicy policy)
PUBLIC: Return a complete copy of the object. |
boolean |
doesObjectExist(java.lang.Object object)
PUBLIC: Return if the object exists on the database or not. |
void |
dontLogMessages()
PUBLIC: Turn off logging |
int |
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(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.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.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.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.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.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 |
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. |
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 |
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. |
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 |
getProperties()
ADVANCED: Allow for user defined properties. |
java.lang.Object |
getProperty(java.lang.String name)
ADVANCED: Returns the user defined property. |
java.util.Map |
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. |
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)
ADVANCED: Extract and return the primary key from the 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,
Call aCall)
PUBLIC: Read all the instances of the class from the database returned through execution the Call string. |
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.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,
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.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.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 queries |
void |
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 |
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 |
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 |
---|
Session acquireHistoricalSession(AsOfClause pastTime)
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
UnitOfWork acquireUnitOfWork()
UnitOfWork
UnitOfWork acquireUnitOfWork(ReferenceMode referenceMode)
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.UnitOfWorkImpl
void addQuery(java.lang.String name, DatabaseQuery query)
void addJPAQuery(DatabaseQuery query)
#getAllQueries()
void clearIntegrityChecker()
void clearProfile()
boolean containsQuery(java.lang.String queryName)
java.lang.Object copyObject(java.lang.Object original)
copyObject(Object, ObjectCopyingPolicy)
java.lang.Object copyObject(java.lang.Object original, ObjectCopyingPolicy policy)
boolean doesObjectExist(java.lang.Object object) throws DatabaseException
DatabaseException
void dontLogMessages()
int executeNonSelectingCall(Call call)
Example:
session.executeNonSelectingCall(new SQLCall("Delete from Employee");
executeSelectingCall(Call)
void executeNonSelectingSQL(java.lang.String sqlString)
java.lang.Object executeQuery(java.lang.String queryName)
addQuery(String, DatabaseQuery)
java.lang.Object executeQuery(java.lang.String queryName, java.lang.Class domainClass)
DescriptorQueryManager.addQuery(String, DatabaseQuery)
java.lang.Object executeQuery(java.lang.String queryName, java.lang.Class domainClass, java.lang.Object arg1)
DescriptorQueryManager.addQuery(String, DatabaseQuery)
java.lang.Object executeQuery(java.lang.String queryName, java.lang.Class domainClass, java.lang.Object arg1, java.lang.Object arg2)
DescriptorQueryManager.addQuery(String, DatabaseQuery)
java.lang.Object executeQuery(java.lang.String queryName, java.lang.Class domainClass, java.lang.Object arg1, java.lang.Object arg2, java.lang.Object arg3)
DescriptorQueryManager.addQuery(String, DatabaseQuery)
java.lang.Object executeQuery(java.lang.String queryName, java.lang.Class domainClass, java.util.List argumentValues)
DescriptorQueryManager.addQuery(String, DatabaseQuery)
java.lang.Object executeQuery(java.lang.String queryName, java.lang.Object arg1)
addQuery(String, DatabaseQuery)
java.lang.Object executeQuery(java.lang.String queryName, java.lang.Object arg1, java.lang.Object arg2)
addQuery(String, DatabaseQuery)
java.lang.Object executeQuery(java.lang.String queryName, java.lang.Object arg1, java.lang.Object arg2, java.lang.Object arg3)
addQuery(String, DatabaseQuery)
java.lang.Object executeQuery(java.lang.String queryName, java.util.List argumentValues)
addQuery(String, DatabaseQuery)
java.lang.Object executeQuery(DatabaseQuery query) throws EclipseLinkException
EclipseLinkException
DatabaseQuery
java.lang.Object executeQuery(DatabaseQuery query, java.util.List argumentValues)
java.util.Vector executeSelectingCall(Call call)
Example:
session.executeSelectingCall(new SQLCall("Select * from Employee");
executeNonSelectingCall(Call)
java.util.Vector executeSQL(java.lang.String sqlString)
Session getActiveSession()
UnitOfWork getActiveUnitOfWork()
ClassDescriptor getClassDescriptor(java.lang.Class theClass)
ClassDescriptor getClassDescriptor(java.lang.Object domainObject)
ClassDescriptor getClassDescriptorForAlias(java.lang.String alias)
AsOfClause getAsOfClause()
null
if no clause set, or this a regular session.acquireHistoricalSession(org.eclipse.persistence.history.AsOfClause)
ReferenceMode getDefaultReferenceMode()
ReferenceMode
ClassDescriptor getDescriptor(java.lang.Class theClass)
ClassDescriptor getDescriptor(java.lang.Object domainObject)
ClassDescriptor getDescriptorForAlias(java.lang.String alias)
java.util.Map getDescriptors()
java.util.List getJPAQueries()
#getAllQueries()
SessionEventManager getEventManager()
ExceptionHandler getExceptionHandler()
ExternalTransactionController getExternalTransactionController()
JTATransactionController
IdentityMapAccessor getIdentityMapAccessor()
IntegrityChecker getIntegrityChecker()
java.io.Writer getLog()
#logMessages()
DatabasePlatform getPlatform()
org.eclipse.persistence.internal.databaseaccess.Platform getDatasourcePlatform()
DatabaseLogin getLogin()
Login getDatasourceLogin()
java.lang.String getName()
java.lang.Number getNextSequenceNumberValue(java.lang.Class domainClass)
SessionProfiler getProfiler()
Project getProject()
java.util.Map getProperties()
java.lang.Object getProperty(java.lang.String name)
java.util.Map getQueries()
DatabaseQuery getQuery(java.lang.String name)
DatabaseQuery getQuery(java.lang.String name, java.util.List arguments)
ServerPlatform getServerPlatform()
SessionLog getSessionLog()
#logMessages()
java.lang.Object handleException(java.lang.RuntimeException exception) throws java.lang.RuntimeException
java.lang.RuntimeException
boolean hasDescriptor(java.lang.Class theClass)
boolean hasExceptionHandler()
boolean hasExternalTransactionController()
JTATransactionController
boolean isClientSession()
boolean isConnected()
boolean isDatabaseSession()
boolean isDistributedSession()
boolean isInProfile()
boolean isRemoteSession()
boolean isServerSession()
boolean isSessionBroker()
boolean isUnitOfWork()
boolean isRemoteUnitOfWork()
java.util.Vector keyFromObject(java.lang.Object domainObject) throws ValidationException
ValidationException
void log(SessionLogEntry entry)
void logMessage(java.lang.String message)
java.util.Vector readAllObjects(java.lang.Class domainClass) throws DatabaseException
DatabaseException
ReadAllQuery
,
readAllObjects(Class, Expression)
java.util.Vector readAllObjects(java.lang.Class domainClass, Call aCall) throws DatabaseException
DatabaseException
SQLCall
,
JPQLCall
java.util.Vector readAllObjects(java.lang.Class domainClass, Expression selectionCriteria) throws DatabaseException
DatabaseException
ReadAllQuery
java.lang.Object readObject(java.lang.Class domainClass) throws DatabaseException
readObject(Class, Call)
, readObject(Class, Expression)
, or readObject(Object)
.
DatabaseException
ReadObjectQuery
,
readAllObjects(Class, Expression)
java.lang.Object readObject(java.lang.Class domainClass, Call aCall) throws DatabaseException
DatabaseException
SQLCall
,
JPQLCall
java.lang.Object readObject(java.lang.Class domainClass, Expression selectionCriteria) throws DatabaseException
DatabaseException
ReadObjectQuery
java.lang.Object readObject(java.lang.Object object) throws DatabaseException
DatabaseException
java.lang.Object refreshObject(java.lang.Object object)
void release()
void removeProperty(java.lang.String property)
void removeQuery(java.lang.String queryName)
void setDefaultReferenceMode(ReferenceMode defaultReferenceMode)
ReferenceMode
void setExceptionHandler(ExceptionHandler exceptionHandler)
void setExternalTransactionController(ExternalTransactionController externalTransactionController)
CustomServerPlatform
void setIntegrityChecker(IntegrityChecker integrityChecker)
void setLog(java.io.Writer log)
#logMessages()
void setName(java.lang.String name)
void setProfiler(SessionProfiler profiler)
void setProperty(java.lang.String propertyName, java.lang.Object propertyValue)
void setSessionLog(SessionLog sessionLog)
#logMessages()
boolean shouldLogMessages()
void validateCache()
int getLogLevel(java.lang.String category)
org.eclipse.persistence.sessions.SessionLog
int getLogLevel()
org.eclipse.persistence.sessions.SessionLog
void setLogLevel(int level)
org.eclipse.persistence.sessions.SessionLog
boolean shouldLog(int Level, java.lang.String category)
org.eclipse.persistence.sessions.SessionLog
java.lang.Object handleSevere(java.lang.RuntimeException exception) throws java.lang.RuntimeException
java.lang.RuntimeException
boolean isFinalizersEnabled()
void setIsFinalizersEnabled(boolean isFinalizersEnabled)
|
EclipseLink 1.2.0, build 'v20091016-r5565' API Reference | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |