I am currently doing inheritance in my mongo entity. Saving is fine, but loading it back gives me the exception of :
Version being used :Code:Exception in thread "main" java.lang.NullPointerException at org.springframework.data.mongodb.core.convert.MappedConstructor.<init>(MappedConstructor.java:56) at org.springframework.data.mongodb.core.convert.MappingMongoConverter.read(MappingMongoConverter.java:212) at org.springframework.data.mongodb.core.convert.MappingMongoConverter.read(MappingMongoConverter.java:200) at org.springframework.data.mongodb.core.convert.MappingMongoConverter.readCollectionOrArray(MappingMongoConverter.java:747) at org.springframework.data.mongodb.core.convert.MappingMongoConverter.getValueInternal(MappingMongoConverter.java:703) at org.springframework.data.mongodb.core.convert.MappingMongoConverter$1.doWithPersistentProperty(MappingMongoConverter.java:230) at org.springframework.data.mongodb.core.convert.MappingMongoConverter$1.doWithPersistentProperty(MappingMongoConverter.java:220) at org.springframework.data.mapping.model.BasicPersistentEntity.doWithProperties(BasicPersistentEntity.java:173) at org.springframework.data.mongodb.core.convert.MappingMongoConverter.read(MappingMongoConverter.java:220) at org.springframework.data.mongodb.core.convert.MappingMongoConverter.read(MappingMongoConverter.java:200) at org.springframework.data.mongodb.core.convert.MappingMongoConverter.getValueInternal(MappingMongoConverter.java:713) at org.springframework.data.mongodb.core.convert.MappingMongoConverter$1.doWithPersistentProperty(MappingMongoConverter.java:230) at org.springframework.data.mongodb.core.convert.MappingMongoConverter$1.doWithPersistentProperty(MappingMongoConverter.java:220) at org.springframework.data.mapping.model.BasicPersistentEntity.doWithProperties(BasicPersistentEntity.java:173) at org.springframework.data.mongodb.core.convert.MappingMongoConverter.read(MappingMongoConverter.java:220) at org.springframework.data.mongodb.core.convert.MappingMongoConverter.read(MappingMongoConverter.java:200) at org.springframework.data.mongodb.core.convert.MappingMongoConverter.read(MappingMongoConverter.java:164) at org.springframework.data.mongodb.core.convert.MappingMongoConverter.read(MappingMongoConverter.java:73) at org.springframework.data.mongodb.core.MongoTemplate$ReadDbObjectCallback.doWith(MongoTemplate.java:1693) at org.springframework.data.mongodb.core.MongoTemplate.executeFindOneInternal(MongoTemplate.java:1405) at org.springframework.data.mongodb.core.MongoTemplate.doFindOne(MongoTemplate.java:1224) at org.springframework.data.mongodb.core.MongoTemplate.findById(MongoTemplate.java:483)
Reading from the documentation :Code:<org.springframework.version>3.1.1.RELEASE</org.springframework.version> <spring.data.mongo.version>1.0.1.RELEASE</spring.data.mongo.version>
I assume this is why i am getting the exceptions because :You can have a single non-zero argument constructor whose constructor argument names match top level field names of document, that constructor will be used. Otherewise the zero arg constructor will be used. if there is more than one non-zero argument constructor an exception will be thrown.
- In my case, both the parent class and the child class has a non-zero argument constructor, and both also have the empty constructor.
- And when i tried not extending the parent class, and it gets loaded fine.
Is there any workaround for this, or is it simply unsupported right now where parent-child classes have each own's non-zero-argument-constructor ?


Reply With Quote
