My document structure is like:
{
_id: \"A\",
groups:[{
groupId: \"someId\",
groupName: \"someName\",
params: {
type1:
Failed to instantiate ... using constructor public ... ReflectionEntityInstantiator
says it cannot create the objects using reflection.
Do you have getters and setters for all the fields in all your classes? Your code above does not have them for ParamData
, Config
and DataConfig
.
Also, if you happen to have non-default constructors in any of your classes make sure you have an empty argument constructor, else reflection will fail.
This seems to be an issue with doubly nested inner classes and the synthetically generated constructors created by the compiler. I could reproduce that issue locally and see if we can provide a fix. In the meantime you have two options:
ParamData
class into the Group
class, DataConfig
into Config
as that will cause the synthetic constructors created in a way they match instantiation order Spring Data currently relies on.I'd suggest the former approach as it doesn't artificially bind the classes to instances of the outer class.