Oracle Application Server TopLink API Reference
10g Release 2 (10.1.2)

B15903-01


oracle.toplink.jdo
Class JDOPersistenceManager

java.lang.Object
  extended byoracle.toplink.jdo.JDOPersistenceManager

All Implemented Interfaces:
javax.jdo.PersistenceManager

public class JDOPersistenceManager
extends java.lang.Object
implements javax.jdo.PersistenceManager

PUBLIC:

TopLink persistence manager for the JDO specification. This supports JDO through the TopLink API, Supported are the basic JDO interfaces but does not require implementation of PersistenceCapable, byte-code enhancers or any other of that internal JDO reference implementation related aspects. JDO wrapper for a TopLink session. JDO:

PersistenceManager is the primary interface for JDO-aware application components. It is the factory for Query and Transaction instances, and contains methods to manage the life cycle of PersistenceCapable instances.

A PersistenceManager is obtained from the PersistenceManagerFactory (recommended) or by construction.


Constructor Summary
JDOPersistenceManager(JDOPersistenceManagerFactory factory, Session session)
Create a new persistence manager from the session and factory.

Method Summary
void close()
Close the persistence manager's session.
javax.jdo.Transaction currentTransaction()
Return the Transaction instance associated with a PersistenceManager.
void deletePersistent(java.lang.Object object)
Delete the persistent instance from the data store.
void deletePersistentAll(java.util.Collection objects)
Delete a Collection of instances from the data store.
void deletePersistentAll(java.lang.Object[] objects)
Delete an array of instances from the data store.
void evict(java.lang.Object object)
Remove the instance from the TopLink cache.
void evictAll()
Initialize the cache.
void evictAll(java.util.Collection objects)
Mark a Collection of instances as no longer needed in the cache.
void evictAll(java.lang.Object[] objects)
Mark an array of instances as no longer needed in the cache.
Session getActiveSession()
Return the associated session or unit of work if within a transaction.
javax.jdo.Extent getExtent(java.lang.Class queryClass, boolean readSubclasses)
The PersistenceManager manages a collection of instances in the data store based on the class of the instances.
boolean getIgnoreCache()
Get the ignoreCache setting for queries.
boolean getMultithreaded()
Get the current Multithreaded flag for this PersistenceManager.
boolean getNontransactionalRead()
When the nontransactional read flag is set to false the PersistenceManager has a single TopLink UnitOfWork associated with it.
java.lang.Object getObjectById(java.lang.Object object, boolean validate)
This method locates a persistent instance in the cache of instances managed by this PersistenceManager.
java.lang.Object getObjectId(java.lang.Object object)
The ObjectId returned by this method represents the JDO identity of the instance.
java.lang.Class getObjectIdClass(java.lang.Class objectClass)
Return the Class that implements the JDO Identity for the specified PersistenceCapable Class.
javax.jdo.PersistenceManagerFactory getPersistenceManagerFactory()
This method returns the PersistenceManagerFactory used to create this PersistenceManager.
Session getSession()
Return the associated session.
java.lang.Object getTransactionalObject(java.lang.Object object)
PUBLIC: This is TOPLink helper method that return the transactional object of the JDO instance.
java.lang.Object getTransactionalObjectId(java.lang.Object object)
The ObjectId returned by this method represents the JDO identity of the instance.
UnitOfWork getUnitOfWork()
Return the active unit of work.
java.lang.Object getUserObject()
The application can manage the PersistenceManager instances more easily by having an application object associated with each PersistenceManager instance.
boolean isClosed()
A PersistenceManager instance can be used until it is closed.
void makeNontransactional(java.lang.Object arg1)
NOT REQUIRED: Not required.
void makeNontransactionalAll(java.util.Collection arg1)
NOT REQUIRED: Not required.
void makeNontransactionalAll(java.lang.Object[] arg1)
NOT REQUIRED: Not required.
void makePersistent(java.lang.Object object)
Make the transient instance persistent in this PersistenceManager.
void makePersistentAll(java.util.Collection objects)
Make a Collection of instances persistent.
void makePersistentAll(java.lang.Object[] objects)
Make an array of instances persistent.
void makeTransactional(java.lang.Object object)
Make an instance subject to transactional boundaries.
void makeTransactionalAll(java.util.Collection objects)
Make a Collection of instances subject to transactional boundaries.
void makeTransactionalAll(java.lang.Object[] objects)
Make an array of instances subject to transactional boundaries.
void makeTransient(java.lang.Object object)
NOT REQUIRED: This is not required.
void makeTransientAll(java.util.Collection arg1)
NOT REQUIRED: This is not required.
void makeTransientAll(java.lang.Object[] arg1)
NOT REQUIRED: This is not required.
java.util.Collection newCollectionInstance(java.lang.Class type, java.lang.Object owner, java.lang.String fieldName, java.lang.Class elementType, boolean allowNulls, java.lang.Integer initialCapacity, java.lang.Float loadFactor, java.util.Collection initialContents)
NOT REQUIRED: This is one of those strange JDO implementation aspects that were added to the specification.
java.util.Map newMapInstance(java.lang.Class type, java.lang.Object owner, java.lang.String fieldName, java.lang.Class keyType, java.lang.Class valueType, boolean allowNulls, java.lang.Integer initialCapacity, java.lang.Float loadFactor, java.util.Map initialContents)
NOT REQUIRED: This is one of those strange JDO implementation aspects that were added to the specification.
javax.jdo.Query newQuery()
Create a new Query with no elements.
javax.jdo.Query newQuery(java.lang.Class queryClass)
Create a new Query specifying the Class of the candidate instances.
javax.jdo.Query newQuery(java.lang.Class queryClass, java.util.Collection collection)
Create a new Query with the Class of the candidate instances and candidate Collection.
javax.jdo.Query newQuery(java.lang.Class queryClass, java.util.Collection collection, java.lang.String filter)
Create a new Query with the Class of the candidate instances, candidate Collection, and filter.
javax.jdo.Query newQuery(java.lang.Class queryClass, Expression expression)
Create a new Query with the Class of the candidate instances and filter expression.
javax.jdo.Query newQuery(java.lang.Class queryClass, javax.jdo.Extent arg2)
Create a new Query with the Class of the candidate instances and candidate Extent.
javax.jdo.Query newQuery(java.lang.Class queryClass, javax.jdo.Extent extent, java.lang.String filter)
Create a new Query with the Class of the candidate instances, candidate Extent, and filter.
javax.jdo.Query newQuery(java.lang.Class queryClass, java.lang.String filter)
Create a new Query with the Class of the candidate instances and Filter.
javax.jdo.Query newQuery(java.lang.Object query)
Create a new Query using elements from another Query.
javax.jdo.Query newQuery(java.lang.String language, java.lang.Object query)
Create a new Query using the specified language.
java.lang.Object newSCOInstance(java.lang.Class arg1, java.lang.Object arg2, java.lang.String arg3)
NOT REQUIRED: This is one of those strange JDO implementation aspects that were added to the specification.
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 expression)
PUBLIC: Read all of the instances of the class from the database matching the given expression.
java.lang.Object readObject(java.lang.Class domainClass, Expression expression)
PUBLIC: Read the first instance of the class from the database matching the given expression.
void refresh(java.lang.Object object)
Refresh the state of the instance from the data store.
void refreshAll()
Refresh the state of all applicable instances from the data store.
void refreshAll(java.util.Collection objects)
Refresh the state of a Collection of instances from the data store.
void refreshAll(java.lang.Object[] objects)
Refresh the state of an array of instances from the data store.
void setIgnoreCache(boolean ignoreCache)
Set the ignoreCache parameter for queries.
void setMultithreaded(boolean multithreaded)
Set the Multithreaded flag for this PersistenceManager.
void setNontransactionalRead(boolean nontransactionalRead)
PUBLIC: By default the nontransactional read flag is set to false.
void setSession(Session session)
Set the associated session.
void setUserObject(java.lang.Object userObject)
The application can manage the PersistenceManager instances more easily by having an application object associated with each PersistenceManager instance.
java.lang.String toString()
Returns a String that represents the value of this object.

Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait

Constructor Detail

JDOPersistenceManager

public JDOPersistenceManager(JDOPersistenceManagerFactory factory,
                             Session session)
Create a new persistence manager from the session and factory.

Method Detail

close

public void close()
Close the persistence manager's session. For database session this will logout from the database. For a client session this will just release the client session's resources.

JDO:

Close this PersistenceManager so that no further requests may be made on it. A PersistenceManager instance can be used only until it is closed.

Closing a PersistenceManager might release it to the pool of available PersistenceManagers, or might be garbage collected, at the option of the JDO implementation. Before being used again to satisfy a getPersistenceManager request, the default values for options will be restored to their values as specified in the PersistenceManagerFactory.

This method closes the PersistenceManager.

Specified by:
close in interface javax.jdo.PersistenceManager

currentTransaction

public javax.jdo.Transaction currentTransaction()
Return the Transaction instance associated with a PersistenceManager. There is one Transaction instance associated with each PersistenceManager instance. The Transaction instance supports options as well as transaction completion requests.
Specified by:
currentTransaction in interface javax.jdo.PersistenceManager
Returns:
the Transaction associated with this PersistenceManager.

deletePersistent

public void deletePersistent(java.lang.Object object)
Delete the persistent instance from the data store. This method must be called in an active transaction. The data store object will be removed at commit. Unlike makePersistent, which makes the closure of the instance persistent, the closure of the instance is not deleted from the data store. This method has no effect if the instance is already deleted in the current transaction. This method throws JDOUserException if the instance is transient or is managed by another PersistenceManager.
Specified by:
deletePersistent in interface javax.jdo.PersistenceManager

evict

public void evict(java.lang.Object object)
Remove the instance from the TopLink cache. This should only be called if the application is sure that it no longer references the object. When used with a DatabaseSession this will remove the object from the cache, when used with a ClientSession it will have no effect as the ClientSession shares the ServerSession's cache. JDO:

Mark an instance as no longer needed in the cache. Eviction is normally done automatically by the PersistenceManager at transaction completion. This method allows the application to explicitly provide a hint to the PersistenceManager that the instance is no longer needed in the cache.

Specified by:
evict in interface javax.jdo.PersistenceManager

getExtent

public javax.jdo.Extent getExtent(java.lang.Class queryClass,
                                  boolean readSubclasses)
The PersistenceManager manages a collection of instances in the data store based on the class of the instances. This method returns a Extent of instances in the data store that might be iterated or given to a Query. The Extent itself might not reference any instances, but only hold the class name and an indicator whether subclasses are included in the Extent.

Note that the Extent might be very large.

Specified by:
getExtent in interface javax.jdo.PersistenceManager
Returns:
an Extent of the specified Class
See Also:
Query

getIgnoreCache

public boolean getIgnoreCache()
Get the ignoreCache setting for queries.

IgnoreCache set to true specifies that for all Query instances created by this PersistenceManager, the default is the cache should be ignored for queries.

Specified by:
getIgnoreCache in interface javax.jdo.PersistenceManager
Returns:
the ignoreCache setting.

getObjectById

public java.lang.Object getObjectById(java.lang.Object object,
                                      boolean validate)
This method locates a persistent instance in the cache of instances managed by this PersistenceManager. The getObjectById method attempts to find an instance in the cache with the specified JDO identity. The oid parameter object might have been returned by an earlier call to getObjectId or getTransactionalObjectId, or might have been constructed by the application.

If the PersistenceManager is unable to resolve the oid parameter to an ObjectId instance, then it throws a JDOUserException.

If the validate flag is false, and there is already an instance in the cache with the same jdo identity as the oid parameter, then this method returns it. There is no change made to the state of the returned instance.

If there is not an instance already in the cache with the same JDO identity as the oid parameter, then this method creates an instance with the specified JDO identity and returns it. If there is no transaction in progress, the returned instance will be hollow or persistent-nontransactional, at the choice of the implementation.

If there is a transaction in progress, the returned instance will be hollow, persistent-nontransactional, or persistent-clean, at the choice of the implementation.

It is an implementation decision whether to access the data store, if required to determine the exact class. This will be the case of inheritance, where multiple PersistenceCapable classes share the same Object Id class.

If the validate flag is false, and the instance does not exist in the data store, then this method might not fail. It is an implementation choice whether to fail immediately with a JDODatastoreException.But a subsequent access of the fields of the instance will throw a JDODatastoreException if the instance does not exist at that time. Further, if a relationship is established to this instance, then the transaction in which the association was made will fail.

If the validate flag is true, and there is already a transactional instance in the cache with the same jdo identity as the oid parameter, then this method returns it. There is no change made to the state of the returned instance.

If there is an instance already in the cache with the same jdo identity as the oid parameter, but the instance is not transactional, then it must be verified in the data store. If the instance does not exist in the datastore, then a JDODatastoreException is thrown.

If there is not an instance already in the cache with the same JDO identity as the oid parameter, then this method creates an instance with the specified jdo identity, verifies that it exists in the data store, and returns it. If there is no transaction in progress, the returned instance will be hollow or persistent-nontransactional, at the choice of the implementation.

If there is a data store transaction in progress, the returned instance will be persistent-clean. If there is an optimistic transaction in progress, the returned instance will be persistent-nontransactional.

Specified by:
getObjectById in interface javax.jdo.PersistenceManager
Parameters:
validate - if the existence of the instance is to be validated
Returns:
the PersistenceCapable instance with the specified ObjectId
See Also:
getObjectId(Object pc), getTransactionalObjectId(Object pc)

getObjectId

public java.lang.Object getObjectId(java.lang.Object object)
The ObjectId returned by this method represents the JDO identity of the instance. The ObjectId is a copy (clone) of the internal state of the instance, and changing it does not affect the JDO identity of the instance.

The getObjectId method returns an ObjectId instance that represents the object identity of the specified JDO instance. The identity is guaranteed to be unique only in the context of the JDO PersistenceManager that created the identity, and only for two types of JDO Identity: those that are managed by the application, and those that are managed by the data store.

If the object identity is being changed in the transaction, by the application modifying one or more of the application key fields, then this method returns the identity as of the beginning of the transaction. The value returned by getObjectId will be different following afterCompletion processing for successful transactions.

Within a transaction, the ObjectId returned will compare equal to the ObjectId returned by only one among all JDO instances associated with the PersistenceManager regardless of the type of ObjectId.

The ObjectId does not necessarily contain any internal state of the instance, nor is it necessarily an instance of the class used to manage identity internally. Therefore, if the application makes a change to the ObjectId instance returned by this method, there is no effect on the instance from which the ObjectId was obtained.

The getObjectById method can be used between instances of PersistenceManager of different JDO vendors only for instances of persistence capable classes using application-managed (primary key) JDO identity. If it is used for instances of classes using datastore identity, the method might succeed, but there are no guarantees that the parameter and return instances are related in any way.

Specified by:
getObjectId in interface javax.jdo.PersistenceManager
Returns:
the ObjectId of the instance
See Also:
getTransactionalObjectId(Object pc), getObjectById(Object oid, boolean validate)

getObjectIdClass

public java.lang.Class getObjectIdClass(java.lang.Class objectClass)
Return the Class that implements the JDO Identity for the specified PersistenceCapable Class. The application can use the returned Class to construct a JDO Identity instance for application identity PersistenceCapable classes. This JDO Identity instance can then be used to get an instance of the PersistenceCapable class for use in the application.

In order for the application to construct an instance of the ObjectId class it needs to know the class being used by the JDO implementation.

Specified by:
getObjectIdClass in interface javax.jdo.PersistenceManager
Returns:
the Class of the ObjectId of the parameter
See Also:
getObjectById(java.lang.Object, boolean)

getPersistenceManagerFactory

public javax.jdo.PersistenceManagerFactory getPersistenceManagerFactory()
This method returns the PersistenceManagerFactory used to create this PersistenceManager.
Specified by:
getPersistenceManagerFactory in interface javax.jdo.PersistenceManager
Returns:
the PersistenceManagerFactory that created this PersistenceManager

getUserObject

public java.lang.Object getUserObject()
The application can manage the PersistenceManager instances more easily by having an application object associated with each PersistenceManager instance.
Specified by:
getUserObject in interface javax.jdo.PersistenceManager
Returns:
the user object associated with this PersistenceManager
See Also:
setUserObject(java.lang.Object)

isClosed

public boolean isClosed()
A PersistenceManager instance can be used until it is closed.
Specified by:
isClosed in interface javax.jdo.PersistenceManager
Returns:
true if this PersistenceManager has been closed
See Also:
close()

makeNontransactional

public void makeNontransactional(java.lang.Object arg1)
NOT REQUIRED:

Not required.

JDO:

Make an instance non-transactional after commit.

Normally, at transaction completion, instances are evicted from the cache. This method allows an application to identify an instance as not being evicted from the cache at transaction completion. Instead, the instance remains in the cache with nontransactional state.

Specified by:
makeNontransactional in interface javax.jdo.PersistenceManager

makePersistent

public void makePersistent(java.lang.Object object)
Make the transient instance persistent in this PersistenceManager. This method must be called in an active transaction. The PersistenceManager assigns an ObjectId to the instance and transitions it to persistent-new. The instance will be managed in the Extent associated with its Class. The instance will be put into the data store at commit. The closure of instances of PersistenceCapable classes reachable from persistent fields will be made persistent at commit. [This is known as persistence by reachability.]
Specified by:
makePersistent in interface javax.jdo.PersistenceManager

makeTransactional

public void makeTransactional(java.lang.Object object)
Make an instance subject to transactional boundaries.

Transient instances normally do not observe transaction boundaries. This method makes transient instances sensitive to transaction completion. If an instance is modified in a transaction, and the transaction rolls back, the state of the instance is restored to the state before the first change in the transaction.

For persistent instances read in optimistic transactions, this method allows the application to make the state of the instance part of the transactional state. At transaction commit, the state of the instance in cache is compared to the state of the instance in the data store. If they are not the same, then an exception is thrown.

Specified by:
makeTransactional in interface javax.jdo.PersistenceManager

makeTransient

public void makeTransient(java.lang.Object object)
NOT REQUIRED: This is not required.

JDO:

Make an instance transient, removing it from management by this PersistenceManager.

The instance loses its JDO identity and it is no longer associated with any PersistenceManager. The state of fields is preserved unchanged.

Specified by:
makeTransient in interface javax.jdo.PersistenceManager

newQuery

public javax.jdo.Query newQuery()
Create a new Query with no elements.
Specified by:
newQuery in interface javax.jdo.PersistenceManager
Returns:
the new Query.

newQuery

public javax.jdo.Query newQuery(java.lang.Class queryClass)
Create a new Query specifying the Class of the candidate instances.
Specified by:
newQuery in interface javax.jdo.PersistenceManager
Returns:
the new Query

newQuery

public javax.jdo.Query newQuery(java.lang.Class queryClass,
                                java.lang.String filter)
Create a new Query with the Class of the candidate instances and Filter.
Specified by:
newQuery in interface javax.jdo.PersistenceManager
Parameters:
filter - the filter for candidate instances
Returns:
the new Query

newQuery

public javax.jdo.Query newQuery(java.lang.Class queryClass,
                                javax.jdo.Extent arg2)
Create a new Query with the Class of the candidate instances and candidate Extent.
Specified by:
newQuery in interface javax.jdo.PersistenceManager
Returns:
the new Query

newQuery

public javax.jdo.Query newQuery(java.lang.Class queryClass,
                                javax.jdo.Extent extent,
                                java.lang.String filter)
Create a new Query with the Class of the candidate instances, candidate Extent, and filter.
Specified by:
newQuery in interface javax.jdo.PersistenceManager
Parameters:
filter - the filter for candidate instances
Returns:
the new Query

newQuery

public javax.jdo.Query newQuery(java.lang.Object query)
Create a new Query using elements from another Query. The other Query must have been created by the same JDO implementation. It might be active in a different PersistenceManager or might have been serialized and restored.

All of the settings of the other Query are copied to this Query, except for the candidate Collection or Extent.

Specified by:
newQuery in interface javax.jdo.PersistenceManager
Returns:
the new Query

newSCOInstance

public java.lang.Object newSCOInstance(java.lang.Class arg1,
                                       java.lang.Object arg2,
                                       java.lang.String arg3)
NOT REQUIRED:

This is one of those strange JDO implementation aspects that were added to the specification. We do not require this, nor do we endose its usage. JDO:

Create a new instance of a Second Class Object which tracks changes made to itself and notifies its owning instance. The types supported include java.util.Date and java.util.Locale. Implementations might also support java.sql.Date, java.sql.Time, and java.sql.Timestamp. The effect of this method on the owner is to mark the field dirty, which might cause a state change in the owner.

Specified by:
newSCOInstance in interface javax.jdo.PersistenceManager
Returns:
the new instance

refresh

public void refresh(java.lang.Object object)
Refresh the state of the instance from the data store.

In an optimistic transaction, the state of instances in the cache might not match the state in the data store. This method is used to reload the state of the instance from the data store so that a subsequent commit is more likely to succeed.

Outside a transaction, this method will refresh nontransactional state.

Specified by:
refresh in interface javax.jdo.PersistenceManager

setIgnoreCache

public void setIgnoreCache(boolean ignoreCache)
Set the ignoreCache parameter for queries.

IgnoreCache set to true specifies that for all Query instances created by this PersistenceManager, the default is the cache should be ignored for queries.

Specified by:
setIgnoreCache in interface javax.jdo.PersistenceManager

setUserObject

public void setUserObject(java.lang.Object userObject)
The application can manage the PersistenceManager instances more easily by having an application object associated with each PersistenceManager instance.
Specified by:
setUserObject in interface javax.jdo.PersistenceManager
See Also:
getUserObject()

toString

public java.lang.String toString()
Returns a String that represents the value of this object.
Returns:
a string representation of the receiver

deletePersistentAll

public void deletePersistentAll(java.lang.Object[] objects)
Delete an array of instances from the data store.
Specified by:
deletePersistentAll in interface javax.jdo.PersistenceManager
See Also:
deletePersistent(Object pc)

deletePersistentAll

public void deletePersistentAll(java.util.Collection objects)
Delete a Collection of instances from the data store.
Specified by:
deletePersistentAll in interface javax.jdo.PersistenceManager
See Also:
deletePersistent(Object pc)

evictAll

public void evictAll()
Initialize the cache. This should only be called if the application is sure that it no longer reference any of the objects. When used with a DatabaseSession this will clear the cache, when used with a ClientSession it will have no effect as the ClientSession shares the ServerSession's cache. JDO:

Mark all persistent-nontransactional instances as no longer needed in the cache. It transitions all persistent-nontransactional instances to hollow. Transactional instances are subject to eviction based on the RetainValues setting.

Specified by:
evictAll in interface javax.jdo.PersistenceManager
See Also:
evict(Object pc)

evictAll

public void evictAll(java.lang.Object[] objects)
Mark an array of instances as no longer needed in the cache.
Specified by:
evictAll in interface javax.jdo.PersistenceManager
See Also:
evict(Object pc)

evictAll

public void evictAll(java.util.Collection objects)
Mark a Collection of instances as no longer needed in the cache.
Specified by:
evictAll in interface javax.jdo.PersistenceManager
See Also:
evict(Object pc)

getActiveSession

public Session getActiveSession()
Return the associated session or unit of work if within a transaction.

getMultithreaded

public boolean getMultithreaded()
Get the current Multithreaded flag for this PersistenceManager.
Specified by:
getMultithreaded in interface javax.jdo.PersistenceManager
Returns:
the Multithreaded setting.
See Also:
setMultithreaded(boolean)

getNontransactionalRead

public boolean getNontransactionalRead()
When the nontransactional read flag is set to false the PersistenceManager has a single TopLink UnitOfWork associated with it. All objects are accessed in the context of this unit of work to preserve clone identity. When the nontransactional read flag is set to true, the PersistenceManager only acquires a unit of work on the begin of the transaction and objects that are to be changed must be first reigstered into the transaction context through re-querying them, or through the getObjectById This enables read to occur on the shared object cache, without the overhead of cloning and change tracking, it also allows for nested units of work to be supported.

JDO: Get the default NontransactionalRead setting for all PersistenceManager instances obtained from this factory.

Returns:
the default NontransactionalRead setting.

getSession

public Session getSession()
Return the associated session.

getTransactionalObjectId

public java.lang.Object getTransactionalObjectId(java.lang.Object object)
The ObjectId returned by this method represents the JDO identity of the instance. The ObjectId is a copy (clone) of the internal state of the instance, and changing it does not affect the JDO identity of the instance.

If the object identity is being changed in the transaction, by the application modifying one or more of the application key fields, then this method returns the current identity in the transaction.

If there is no transaction in progress, or if none of the key fields is being modified, then this method will return the same value as getObjectId.

Specified by:
getTransactionalObjectId in interface javax.jdo.PersistenceManager
Returns:
the ObjectId of the instance
See Also:
getObjectId(Object pc), getObjectById(Object oid, boolean validate)

getTransactionalObject

public java.lang.Object getTransactionalObject(java.lang.Object object)
PUBLIC:

This is TOPLink helper method that return the transactional object of the JDO instance. Changes made the the transactional object is persisted when the current transaction commit.

The method is equivalent to manager.getObjectById(manager.getTransactionalObjectId(object), true);

Returns:
the transactional representation of the JDO instance

getUnitOfWork

public UnitOfWork getUnitOfWork()
Return the active unit of work.

makeNontransactionalAll

public void makeNontransactionalAll(java.lang.Object[] arg1)
NOT REQUIRED:

Not required.

JDO:

Make an array of instances non-transactional after commit.

Specified by:
makeNontransactionalAll in interface javax.jdo.PersistenceManager
See Also:
makeNontransactional(Object pc)

makeNontransactionalAll

public void makeNontransactionalAll(java.util.Collection arg1)
NOT REQUIRED:

Not required.

JDO:

Make a Collection of instances non-transactional after commit.

Specified by:
makeNontransactionalAll in interface javax.jdo.PersistenceManager
See Also:
makeNontransactional(Object pc)

makePersistentAll

public void makePersistentAll(java.lang.Object[] objects)
Make an array of instances persistent.
Specified by:
makePersistentAll in interface javax.jdo.PersistenceManager
See Also:
makePersistent(Object pc)

makePersistentAll

public void makePersistentAll(java.util.Collection objects)
Make a Collection of instances persistent.
Specified by:
makePersistentAll in interface javax.jdo.PersistenceManager
See Also:
makePersistent(Object pc)

makeTransactionalAll

public void makeTransactionalAll(java.lang.Object[] objects)
Make an array of instances subject to transactional boundaries.
Specified by:
makeTransactionalAll in interface javax.jdo.PersistenceManager
See Also:
makeTransactional(Object pc)

makeTransactionalAll

public void makeTransactionalAll(java.util.Collection objects)
Make a Collection of instances subject to transactional boundaries.
Specified by:
makeTransactionalAll in interface javax.jdo.PersistenceManager
See Also:
makeTransactional(Object pc)

makeTransientAll

public void makeTransientAll(java.lang.Object[] arg1)
NOT REQUIRED: This is not required.

JDO:

Make an array of instances transient, removing them from management by this PersistenceManager.

The instances lose their JDO identity and they are no longer associated with any PersistenceManager. The state of fields is preserved unchanged.

Specified by:
makeTransientAll in interface javax.jdo.PersistenceManager

makeTransientAll

public void makeTransientAll(java.util.Collection arg1)
NOT REQUIRED: This is not required.

JDO:

Make a Collection of instances transient, removing them from management by this PersistenceManager.

The instances lose their JDO identity and they are no longer associated with any PersistenceManager. The state of fields is preserved unchanged.

Specified by:
makeTransientAll in interface javax.jdo.PersistenceManager

newCollectionInstance

public java.util.Collection newCollectionInstance(java.lang.Class type,
                                                  java.lang.Object owner,
                                                  java.lang.String fieldName,
                                                  java.lang.Class elementType,
                                                  boolean allowNulls,
                                                  java.lang.Integer initialCapacity,
                                                  java.lang.Float loadFactor,
                                                  java.util.Collection initialContents)
                                           throws java.lang.IllegalArgumentException
NOT REQUIRED:

This is one of those strange JDO implementation aspects that were added to the specification. We do not require this, nor do we endose its usage.

JDO:

Create a new instance of a Collection which tracks changes made to itself and notifies its owning instance. The types supported must include java.util.Collection, java.util.Set, and java.util.HashSet. The effect of this method on the owner is to mark the field dirty, which might cause a state change in the owner. Implementations may also support other types.

Specified by:
newCollectionInstance in interface javax.jdo.PersistenceManager
Parameters:
initialContents - the Collection containing the elements to be copied into the new Colleciton; may be null.
type - the Class or Interface of the instance to be instantiated; must not be null.
owner - the First Class Object instance to notify on changes; must not be null.
fieldName - the name of the field in the owner; must not be null.
elementType - the element type assignment compatible with all added elements; must not be null (use Object if instances of any class are acceptable).
allowNulls - whether nulls are permitted as elements.
initialCapacity - the initial size of the Collection; must be non-negative.
loadFactor - loadFactor for the Collection type, if that type uses a load factor. If so, loadFactor must be greater than 0. Otherwise, may be null.
Returns:
the new instance
Throws:
java.lang.IllegalArgumentException - if any of the restrictions noted in the parameters is not met.
See Also:
newSCOInstance(java.lang.Class, java.lang.Object, java.lang.String)

newMapInstance

public java.util.Map newMapInstance(java.lang.Class type,
                                    java.lang.Object owner,
                                    java.lang.String fieldName,
                                    java.lang.Class keyType,
                                    java.lang.Class valueType,
                                    boolean allowNulls,
                                    java.lang.Integer initialCapacity,
                                    java.lang.Float loadFactor,
                                    java.util.Map initialContents)
                             throws java.lang.IllegalArgumentException
NOT REQUIRED:

This is one of those strange JDO implementation aspects that were added to the specification. We do not require this, nor do we endose its usage.

JDO:

Create a new instance of a Collection which tracks changes made to itself and notifies its owning instance. The effect of this method on the owner is to mark the field dirty, which might cause a state change in the owner.

Specified by:
newMapInstance in interface javax.jdo.PersistenceManager
Parameters:
allowNulls - whether nulls are allowed as keys or values
type - the Class or Interface of the instance to be instantiated; must not be null
owner - the First Class Object instance to notify on changes; must not be null
fieldName - the name of the field in the owner; must not be null
keyType - the type of the key; must not be null
valueType - the type of the value; must not be null
initialCapacity - the initial capacity for the new Map; must be non-negative.
loadFactor - the load factor for the new Map; must be positive
initialContents - the initial contents of the new Map; may be null
Returns:
the new instance
Throws:
java.lang.IllegalArgumentException - if any of the restrictions noted in the parameters is not met.
See Also:
newSCOInstance(java.lang.Class, java.lang.Object, java.lang.String)

newQuery

public javax.jdo.Query newQuery(java.lang.Class queryClass,
                                java.util.Collection collection)
Create a new Query with the Class of the candidate instances and candidate Collection.
Specified by:
newQuery in interface javax.jdo.PersistenceManager
Returns:
the new Query

newQuery

public javax.jdo.Query newQuery(java.lang.Class queryClass,
                                java.util.Collection collection,
                                java.lang.String filter)
Create a new Query with the Class of the candidate instances, candidate Collection, and filter.
Specified by:
newQuery in interface javax.jdo.PersistenceManager
Parameters:
filter - the filter for candidate instances
Returns:
the new Query

newQuery

public javax.jdo.Query newQuery(java.lang.Class queryClass,
                                Expression expression)
Create a new Query with the Class of the candidate instances and filter expression.
Returns:
the new Query

newQuery

public javax.jdo.Query newQuery(java.lang.String language,
                                java.lang.Object query)
Create a new Query using the specified language.
Specified by:
newQuery in interface javax.jdo.PersistenceManager
Parameters:
language - the language of the query parameter
query - the query, which is of a form determined by the language
Returns:
the new Query

readAllObjects

public java.util.Vector readAllObjects(java.lang.Class domainClass)
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.
See Also:
ReadAllQuery, readAllObjects(Class, Expression)

readAllObjects

public java.util.Vector readAllObjects(java.lang.Class domainClass,
                                       Expression expression)
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.
See Also:
ReadAllQuery

readObject

public java.lang.Object readObject(java.lang.Class domainClass,
                                   Expression expression)
PUBLIC: Read the first instance of the class from the database matching the given expression. This operation can be customized through using a ReadObjectQuery.
See Also:
ReadObjectQuery

refreshAll

public void refreshAll()
Refresh the state of all applicable instances from the data store.

If called with an active transaction, all transactional instances will be refreshed. If called outside an active transaction, all nontransactional instances will be refreshed.

Specified by:
refreshAll in interface javax.jdo.PersistenceManager
See Also:
refresh(Object pc)

refreshAll

public void refreshAll(java.lang.Object[] objects)
Refresh the state of an array of instances from the data store.
Specified by:
refreshAll in interface javax.jdo.PersistenceManager
See Also:
refresh(Object pc)

refreshAll

public void refreshAll(java.util.Collection objects)
Refresh the state of a Collection of instances from the data store.
Specified by:
refreshAll in interface javax.jdo.PersistenceManager
See Also:
refresh(Object pc)

setMultithreaded

public void setMultithreaded(boolean multithreaded)
Set the Multithreaded flag for this PersistenceManager. Applications that use multiple threads to invoke methods or access fields from instances managed by this PersistenceManager must set this flag to true. Instances managed by this PersistenceManager include persistent or transactional instances of PersistenceCapable classes, as well as helper instances such as Query, Transaction, or Extent.
Specified by:
setMultithreaded in interface javax.jdo.PersistenceManager

setNontransactionalRead

public void setNontransactionalRead(boolean nontransactionalRead)
PUBLIC: By default the nontransactional read flag is set to false. When the nontransactional read flag is set to false the PersistenceManager has a single TopLink UnitOfWork associated with it. All objects are accessed in the context of this unit of work to preserve clone identity. When the nontransactional read flag is set to true, the PersistenceManager only acquires a unit of work on the begin of the transaction and objects that are to be changed must be first reigstered into the transaction context through re-querying them, or through the getObjectById. This enables read to occur on the shared object cache, without the overhead of cloning and change tracking, it also allows for nested units of work to be supported. CAUTION: when the nontransactional read flad is set to true, the current UnitOfWork is released if it is active. The application should decide to commit the current transaction before calling this method.

JDO: Set the default NontransactionalRead setting for all PersistenceManager instances obtained from this factory.


setSession

public void setSession(Session session)
Set the associated session.

Copyright © 1998, 2005 Oracle Corporation. All Rights Reserved.