The described feature is not available in any object-db I know, but possible with mapping to a relational DB, for example with Hibernate.
By default every entity of the real world (respectively its class) gets mapped to a java class. So cats get mapped to the java class 'Cat', dogs to 'Dog' and so on.
In the project for which I'm evaluating objectDB, there 1.) will be hundreds of classes and 2.) not all classes are known at project start (an editor).
To deal with especially the 2. limitation, the editor doesn't model his data with java-classes directly, but with a so called MetaClass. A MetaClass is a simple Java class, which mimics it behavior, for example it has an attribute for the name of the class.
Now this leads to the following problem:
By default a Java object gets persisted depending on its java-class. But in this case all the instances would be saved in the same 'table' (or what objectDB calls the space to save entities), called 'MetaClass'. And so apples and oranges gets mixed and no useful index can be build, etc.
In Hibernate you can specify a custom mapper, where you can change how an object gets converted to a persisted entity.
In simple words it would be the following:
If you have to persist an object obj which is an instance of 'MetaClass' don't persist it to the 'table' MetaClass,
but read the value val = obj.getName() and persist it to the 'table' called as the value.
The rest of the custom persister (e.g. for persisting lists etc.) could be the same as a default mapper / persister.
Is this possible to do with objectDB or anything else to get the problem done?
With best regards,
Thomas