Custom Storing Behavior
This is the manual for older MicroStream versions (Version < 5.0).
The new documentation (Version >= 5.0) is located at:
Implementing the
PersistenceEagerStoringFieldEvaluator
interface allows you to handle the eager/lazy storing behavior of any known member. The default implementation of the MicroStream engine threads all fields as lazy storing. See Lazy and Eager Storing for details on lazy and eager storing.The
PersistenceEagerStoringFieldEvaluator
has only one method to be implemented: public boolean isEagerStoring(Class<?> t, Field u)
return true if the field has to be eager, otherwise return false.public class CustomEagerStoringFieldEvaluator
implements PersistenceEagerStoringFieldEvaluator
{
@Override
public boolean isEagerStoring(Class<?> clazz, Field field)
{
if(clazz == MyClass.class && field.getName().equals("eagerField")
{
return true;
}
return false;
}
}
To register the customized
PersistenceEagerStoringFieldEvaluator
add it using the one.microstream.persistence.types.PersistenceFoundation
.setReferenceFieldEagerEvaluator(PersistenceEagerStoringFieldEvaluator)
method during the storage initialization.NioFileSystem fileSystem = NioFileSystem.New();
EmbeddedStorageManager storage = EmbeddedStorage
.Foundation(fileSystem.ensureDirectoryPath(WORKINGDIR))
.onConnectionFoundation(f ->
{
f.setReferenceFieldEagerEvaluator(new CustomEagerStoringFieldEvaluator());
})
.start(ROOT)
;
Last modified 2yr ago