Skip to content

Dont require Converters for Complex classes that are used as Ids [DATAMONGO-485] #1420

@spring-projects-issues

Description

@spring-projects-issues

Alexander Bätz opened DATAMONGO-485 and commented

We want to store Domain-Objects that use complex classes as ids (every object has a property id that is a complex class) from Hazelcast. see project and projectId for an example.

when we try and call save on the mongo-template with a complete object (with id).

Call:
MongoTemplate.save(object);

Result:

org.springframework.data.mapping.model.MappingException: Cannot use a complex object as a key value.
	at org.springframework.data.mongodb.core.convert.MappingMongoConverter.writeMapInternal(MappingMongoConverter.java:525) ~[spring-data-mongodb-1.0.2.RELEASE.jar:na]
	at org.springframework.data.mongodb.core.convert.MappingMongoConverter.writePropertyInternal(MappingMongoConverter.java:385) ~[spring-data-mongodb-1.0.2.RELEASE.jar:na]
	at org.springframework.data.mongodb.core.convert.MappingMongoConverter$3.doWithPersistentProperty(MappingMongoConverter.java:346) ~[spring-data-mongodb-1.0.2.RELEASE.jar:na]
	at org.springframework.data.mongodb.core.convert.MappingMongoConverter$3.doWithPersistentProperty(MappingMongoConverter.java:335) ~[spring-data-mongodb-1.0.2.RELEASE.jar:na]
	at org.springframework.data.mapping.model.BasicPersistentEntity.doWithProperties(BasicPersistentEntity.java:173) ~[spring-data-commons-core-1.2.1.RELEASE.jar:na]
	at org.springframework.data.mongodb.core.convert.MappingMongoConverter.writeInternal(MappingMongoConverter.java:335) ~[spring-data-mongodb-1.0.2.RELEASE.jar:na]
	at org.springframework.data.mongodb.core.convert.MappingMongoConverter.writeInternal(MappingMongoConverter.java:307) ~[spring-data-mongodb-1.0.2.RELEASE.jar:na]
	at org.springframework.data.mongodb.core.convert.MappingMongoConverter.write(MappingMongoConverter.java:272) ~[spring-data-mongodb-1.0.2.RELEASE.jar:na]
	at org.springframework.data.mongodb.core.convert.MappingMongoConverter.write(MappingMongoConverter.java:73) ~[spring-data-mongodb-1.0.2.RELEASE.jar:na]
	at org.springframework.data.mongodb.core.MongoTemplate.doSave(MongoTemplate.java:718) ~[spring-data-mongodb-1.0.2.RELEASE.jar:na]
	at org.springframework.data.mongodb.core.MongoTemplate.save(MongoTemplate.java:708) ~[spring-data-mongodb-1.0.2.RELEASE.jar:na]
	at org.springframework.data.mongodb.core.MongoTemplate.save(MongoTemplate.java:704) ~[spring-data-mongodb-1.0.2.RELEASE.jar:na]
	at net.bigpoint.globalchat.hazelcast.MongoMapStore.store(MongoMapStore.java:86) [classes/:na]
	at net.bigpoint.globalchat.hazelcast.MongoMapStore.store(MongoMapStore.java:1) [classes/:na]
	at com.hazelcast.impl.concurrentmap.MapStoreWrapper.store(MapStoreWrapper.java:114) [hazelcast-2.1.2.jar:2.1.2]
	at com.hazelcast.impl.ConcurrentMapManager$PutOperationHandler$PutStorer.doMapStoreOperation(ConcurrentMapManager.java:2853) [hazelcast-2.1.2.jar:2.1.2]
	at com.hazelcast.impl.ConcurrentMapManager$AbstractMapStoreOperation.run(ConcurrentMapManager.java:3560) [hazelcast-2.1.2.jar:2.1.2]
	at com.hazelcast.impl.executor.ParallelExecutorService$ParallelExecutorImpl$ExecutionSegment.run(ParallelExecutorService.java:212) [hazelcast-2.1.2.jar:2.1.2]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) [na:1.7.0_04]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) [na:1.7.0_04]
	at java.lang.Thread.run(Thread.java:722) [na:1.7.0_04]
	at com.hazelcast.impl.ExecutorThreadFactory$1.run(ExecutorThreadFactory.java:38) [hazelcast-2.1.2.jar:2.1.2]

Attachments:

Issue Links:

  • DATAMONGO-242 Allow using complex types as Map keys
    ("duplicates")

Metadata

Metadata

Assignees

No one assigned

    Labels

    in: mappingMapping and conversion infrastructurestatus: declinedA suggestion or change that we don't feel we should currently applytype: enhancementA general enhancement

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions