Best Practice
Storing Hidden Encapsulated Objects
In some cases, it can be necessary to store modified encapsulated objects that cannot be accessed from your code.
public class ForeignObject
{
...
private HiddenObject hidden;
...
}
In the upper code snippet the "hidden" object cannot be accessed by store(myForeignObject.hidden)
if no getter is available.
To allow such hidden objects to be stored after they have been modified you have to options:
-
Set the global storing strategy of the EclipseStore instance to eager storing or
-
Implement and set a custom
PersistenceEagerStoringFieldEvaluator
for this field.
EmbeddedStorageManager storage = EmbeddedStorage.Foundation()
.onConnectionFoundation(
f -> f.setReferenceFieldEagerEvaluator(
new CustomEagerStoringFieldEvaluator()
)
)
.start();
Use Immutable data models
To increase performance use immutable sub-graphs as often as possible.
Storing those with the provided convenience storing methods or using a thread local storer to insert those sub-graphs concurrently can give a great performance boost.