私はJavaのmongoDBで作業しています。Javaビットセットオブジェクトをdbに保存したいのですが、対応するJavaから変換できるのはBSONネイティブタイプのみであるため、マッパーライブラリを使用する必要があります。
Mongo Morphia Mapperを使用して、ビットセットオブジェクトを正常に保存しました。しかし、SpringDataMongoDBライブラリを使用して同じことを行う必要があります。ただし、spring libsを使用すると、ビットセットオブジェクトは保存されず、保存中にエラーは発生しません。そして、同じオブジェクトを取得すると、空のbisetオブジェクトが取得されます。以下は、それぞれMorphiaとSpringを使用してmongoデータベースにデータが保存された方法です。
モルヒネ
- {"_id": "testid"、 "name": "spring"、 "bit":{"words":[NumberLong(132)]、 "wordsInUse":1、 "sizeIsSticky":true} }
バネ
- {"_id": "testid"、 "name": "spring"、 "bit":{"words":[NumberLong(132)]} }
2つを比較すると、スプリングを使用したBiset情報が完全に保存されていないことに気付きました(太字部分)。これが空のビットセットオブジェクトの理由である可能性があります。保存に「spring-data-mongodb-1.0.0.M4.jar」を使用しています。どこが間違っているのか誰か教えてください。よろしくお願いします。
ありがとう
Shubhra
@Asya Kamsky
以下は、春を使用して保存するために使用しているコードです。
BitSet b = new BitSet(10);
b.set(2);
b.set(7);
MyClass myclass = new MyClass("testid","spring",b);
ApplicationContext ctx = new AnnotationConfigApplicationContext(SpringMongoConfig.class);
MongoOperations mongoOperation = (MongoOperations)ctx.getBean("mongoTemplate");
mongoOperation.save(myclass);