Supported Java Features
This is the manual for older MicroStream versions (Version < 5.0).
The new documentation (Version >= 5.0) is located at:
Feature | Supported | Note |
Classes | | |
Classes without default constructor | | |
Abstract classes / Interfaces | | Perfectly handleable as types, but there can never be instances to be persisted in the first place. |
Inner classes | | |
Anonymous inner classes | | |
Primitives | | |
References | | |
Final fields | | |
Static fields | | Not supported since they are outside of an entity graph / a database, i.e. potentially shared by multiple graphs. |
Constant primitives | | No sense in persisting those. These are just plain trivial values outside of an entity graph / a database. |
Constant instances | | Must be registered for loading to update them instead of creating independent new instances. |
Primitive arrays | | |
Object arrays | | |
Multi dimensional arrays | | Technically the same as object arrays as every array is an object itself. |
JDK value types
(String, Number types, Date, File, Locale, Optional, ...) | | Optimized handling via custom TypeHandlers. |
Collections | | Via generic handling logic (List, Set, Map, etc.).
Optimal handling required tailored TypeHandler (e.g. correctly handling loadFactor in java.util.HashMap) |
Nested Collections | | |
JVM system-tied classes
(Thread, ClassLoader, WeakReference, ...) | | Technically handleable, but handling system-instances could cause fatal problems (e.g. start a Thread just from loading data), so it is intentionally disabled. |
JVM external-tied classes
(IO-Streams, FileChannel, ...) | | Technically handleable, but external dependencies could cause fatal problems (e.g. existence of a referenced file), so it is intentionally disabled. |
Feature | Supported | Note |
Enums | | Automatically handled as constant instances to maintain referential integrity / identity. |
Enums with mutable state | | |
Enums anonymous subclasses | | |
Feature | Supported | Note |
Lambdas | | Type-handleable in theory. But JVM is not able to resolve its own type definitions for lambdas. |
Feature | Supported | Note |
Records | | Records are mere syntax sugar for classes. |
Last modified 1yr ago