MicroStream Reference Manual
MicroStream HomeAPI Docs
4.0
4.0
  • Preface
  • System Requirements
  • License
  • Changelog
  • Installation
  • Data-Store
    • Overview
    • Getting Started
    • Root Instances
    • Configuration
      • Properties
      • Storage Files and Directories
      • Using Channels
      • Housekeeping
      • Backup
      • Lock File
    • Storage Targets
      • Local File System
      • SQL Databases
        • Oracle
        • MySQL
        • SQLite
      • Blob Stores
        • Oracle Cloud
        • Oracle NoSQL
        • Coherence
    • Storing Data
      • Convenience Methods and Explicit Storing (Transactions)
      • Lazy and Eager Storing
      • Transient Fields
      • Best Practice
    • Loading Data
      • Lazy Loading
        • Touched Timestamp, Null-Safe Variant
        • Clearing Lazy References
    • Deleting Data
    • Queries
    • Application Life-Cycle
    • Legacy Type Mapping
      • User Interaction
    • Backup Strategies
    • Import / Export
    • Housekeeping
    • Customizing
      • Custom Type Handler
      • Custom Legacy Type Handler
      • Custom Class Loader
      • Custom Storing Behavior
      • Optional Storage Manager Reference in Entities
    • REST Interface
      • Setup
      • REST API
      • Client GUI
    • FAQ
      • Data Model
      • Data Management
      • File Storage
      • Java Features
      • Miscellaneous
    • Addendum
      • Supported Java Features
      • Specialized Type Handlers
      • Examples and Demo Projects
  • Cache
    • Overview
    • Getting Started
    • Configuration
      • Properties
      • Storage
    • Use Cases
      • Hibernate Second Level Cache
      • Spring Cache
  • Basic Concepts
    • Layered Entities
      • Configuration
      • Defining Entities
      • Creating Entities
      • Updating Entities
      • Versioning
      • Logging
      • Multiple Layers
    • Wrapping
      • Configuration
      • Usage
Powered by GitBook
On this page
  • Java 5
  • Java 8
  • Java 14
Export as PDF
  1. Data-Store
  2. Addendum

Supported Java Features

PreviousAddendumNextSpecialized Type Handlers

Last updated 3 years ago

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.

Java 5

Feature

Supported

Note

Enums

Automatically handled as constant instances to maintain referential integrity / identity.

Enums with mutable state

Enums anonymous subclasses

Java 8

Feature

Supported

Note

Lambdas

Type-handleable in theory. But JVM is not able to resolve its own type definitions for lambdas.

Java 14

Feature

Supported

Note

Records

Records are mere syntax sugar for classes.

https://docs.microstream.one/