
![]()  | Note | 
|---|---|
		Kodo includes the 
		
		  | 
	Applications use the 
	JDOHelper for three
	types of operations: persistence-capable operations, 
	lifecycle operations, and 
	PersistenceManagerFactory construction.
	We investigate each below.
	
public static void makeDirty (Object pc, String fieldName); public static Object getObjectId (Object pc); public static Object getVersion (Object pc); public static PersistenceManager getPersistenceManager (Object pc);
		
		
		
		
		We have already seen the first two persistence-capable
		operations, makeDirty and 
		getObjectId.  Given a persistence-capable
		object and the name of the field that has been modified, the
		makeDirty method notifies the JDO 
		implementation that the field's value has changed so that it can
		write the new value to the datastore.  JDO usually tracks field
		modifications automatically; the only time you are required to use
		this method is when you assign a new value to some index of a 
		persistent array.
		
		
		
		
		
		The getObjectId method returns the JDO
		identity object for the persistence-capable instance given as an
		argument.  If the given instance is not persistent, this method
		returns null.
		
![]()  | Note | 
|---|---|
			
			Under some settings, your JDO implementation may have to insert 
			a newly-persisted object into the datastore before it can determine
			the object's JDO identity.  Thus, calling   | 
		
		
		
		
		The getVersion method returns the version
		object of the given persistence-capable instance.  Version objects are
		used to ensure that concurrent optimistic transactions don't overwrite
		each other's changes.  For more information on optimistic transactions,
		see Section 9.1, “Transaction Types”.  Standard JDO versioning
		strategies are discussed in 
		Section 15.10, “Version”.  
		
		If the argument to getVersion is not persistent
		or does not have a version, the method returns null.
		
		
		
		
		
		The final persistence-capable operation,
		getPersistenceManager, is self-explanatory.
		It simply returns the PersistenceManager
		that is managing the persistence-capable object supplied as an
		argument.  If the argument is a transient
		object, meaning it is not managed by a
		PersistenceManager, null
		is returned.