Package org.apache.cayenne
Class HybridPersistentObject
java.lang.Object
org.apache.cayenne.PersistentObject
org.apache.cayenne.HybridPersistentObject
- All Implemented Interfaces:
Serializable
,Persistent
,Validating
This data object like
GenericPersistentObject
uses Map
to store generic attributes,
only difference is that this Map will be created lazily at first write, thus reducing memory penalty if possible.
This class can be used as superclass for objects that have attributes created at runtime.
If generic runtime attributes will always be used it may be a good idea to use GenericPersistentObject
instead.
If you don't create attributes at runtime it is better to use PersistentObject
class.
Map creation is not thread safe, as PersistentObject in general not thread safe by its own.
- Since:
- 4.1, 5.0, renamed from HybridDataObject
- See Also:
-
Field Summary
FieldsFields inherited from class org.apache.cayenne.PersistentObject
objectContext, objectId, persistenceState, snapshotVersion
Fields inherited from interface org.apache.cayenne.Persistent
DEFAULT_VERSION
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected void
appendProperties
(StringBuffer buffer) readPropertyDirectly
(String propName) Returns mapped property value as currently stored in the Persistent object.protected void
void
writePropertyDirectly
(String propName, Object val) Modifies a value of a named property without altering the object state in any way, and without triggering any database operations.protected void
Methods inherited from class org.apache.cayenne.PersistentObject
addToManyTarget, beforePropertyRead, beforePropertyWrite, getMapKey, getObjectContext, getObjectId, getPersistenceState, getSnapshotVersion, readNestedProperty, readNestedProperty, readProperty, readSerialized, removeToManyTarget, setObjectContext, setObjectId, setPersistenceState, setReverseRelationship, setSnapshotVersion, setToManyTarget, setToOneTarget, toString, toStringBuffer, unsetReverseRelationship, validateForDelete, validateForInsert, validateForSave, validateForUpdate, willConnect, writeProperty, writeSerialized
-
Field Details
-
values
-
-
Constructor Details
-
HybridPersistentObject
public HybridPersistentObject()
-
-
Method Details
-
readPropertyDirectly
Description copied from interface:Persistent
Returns mapped property value as currently stored in the Persistent object. Returned value maybe a fault or a real value. This method will not attempt to resolve faults, or to read unmapped properties.- Specified by:
readPropertyDirectly
in interfacePersistent
- Overrides:
readPropertyDirectly
in classPersistentObject
-
writePropertyDirectly
Description copied from interface:Persistent
Modifies a value of a named property without altering the object state in any way, and without triggering any database operations. This method is intended mostly for internal use by Cayenne framework, and shouldn't be called from the application code.- Specified by:
writePropertyDirectly
in interfacePersistent
- Overrides:
writePropertyDirectly
in classPersistentObject
-
appendProperties
- Overrides:
appendProperties
in classPersistentObject
-
readState
- Overrides:
readState
in classPersistentObject
- Throws:
IOException
ClassNotFoundException
-
writeState
- Overrides:
writeState
in classPersistentObject
- Throws:
IOException
-