我在java中的mongoDB中工作。我想将 java Bitset Object 保存在 db 中,因为只有 BSON 本机类型可以从它们的 Java 对应类型转换,所以我必须使用映射器库。
我使用 Mongo Morphia Mapper 并成功保存了 Bitset 对象。但我需要使用 Spring Data MongoDB 库来做同样的事情。但是使用spring libs的Bitset Object没有保存,保存时也没有报错。当我检索相同的对象时,我得到空的 biset 对象。以下是分别使用 Morphia 和 Spring 将数据保存在 mongo 数据库中的方式:
吗啡
- {“_id”:“testid”,“name”:“spring”,“bit”:{“words”:[NumberLong(132)],“wordsInUse”:1,“sizeIsSticky”:true} }
春天
- {“_id”:“testid”,“名称”:“弹簧”,“位”:{“单词”:[NumberLong(132)]} }
通过比较两者,我注意到使用弹簧的 Biset 信息没有完全保存(粗体部分)。这可能是空位集对象的原因。我正在使用“spring-data-mongodb-1.0.0.M4.jar”进行保存。请任何人都可以告诉我哪里错了。我会很感激你的帮助。
谢谢
舒布拉
@Asya Kamsky
下面是我用来保存使用 spring 的代码:
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);