読者です 読者をやめる 読者になる 読者になる

SpringData使ってMongoDBごにょごにょ

MongoDB

SpringDataDocumentの1.0.0.M3を使ってごにょごにょしてたらcollectionに「_class」って名前でinsertに使ったDTOクラスが完全限定名でぶちこまれてました。
やあよ!やあよ!


MorphiaだとEntityアノテーションに「noClassnameStored」って属性があったのでそこで制御できたんですが…。
どこでやってんだろーなーとソースを眺めたらどうやら「org.springframework.data.document.mongodb.convert.MappingMongoConverter」がやってるみたい。
CUSTOM_TYPE_KEYって名前でStringのフィールド作ってそこに「_class」ってぶちこんでいるかんじ。
しかし特になんかフラグ渡してやれば入れないでくれるというわけでもなさそうな…。
いったいどうすれば…!


こうか…!

DBObject dbObject = new BasicDBObject();
mongoTemplate.getConverter().write(dto, dbObject);
dbObject.removeField(MappingMongoConverter.CUSTOM_TYPE_KEY);
mongoTemplate.getCollection("collection01").save(dbObject, WriteConcern.SAFE);


いやいや…!
うまくいくけど…!いくけども…!!

スポンサーリンク