# Custom Storing Behavior

{% hint style="warning" %}
**This is the manual for older MicroStream versions (Version < 5.0).**

**The new documentation (Version >= 5.0) is located at:**

[https://docs.microstream.one/](https://docs.microstream.one/manual)
{% endhint %}

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](https://manual.docs.microstream.one/3.0/data-store/storing-data/lazy-eager-full) 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.

```java
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.

```java
EmbeddedStorageManager storage = EmbeddedStorage        		
    .Foundation(Storage.ConfigurationBuilder()         				
        .setStorageFileProvider(Storage.FileProvider(WORKINGDIR))         				
        .createConfiguration())
    .onConnectionFoundation(f ->
    {
        f.setReferenceFieldEagerEvaluator(new CustomEagerStoringFieldEvaluator());
    })
    .start(ROOT);
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://manual.docs.microstream.one/3.0/data-store/customizing/custom-storing-behavior.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
