Ale*_*ets 5 java mongodb spring-data-mongodb
我使用Spring Data MongoDB进行更新查询时遇到问题.我将一些对象的_id检索为BigInteger值.然后我想进行以下查询:
Query query = new Query(Criteria.where("_id").is(id));
Update update = new Update();
update.set("version",version);
mongoOperations.updateFirst(query, update, Audit.class);
Run Code Online (Sandbox Code Playgroud)
查询部分无法匹配任何文档,因为以is()某种方式传递的id值必须转换为ObjectId.我找不到关于这种转换的任何文档.将不胜感激任何帮助.
ps:SpringData Mongodb 1.2版
您也可以手动转换它:
ObjectId convertedId = new ObjectId(bigInteger.toString(16));
Query query = new Query(Criteria.where("_id").is(convertedId));
Run Code Online (Sandbox Code Playgroud)
您可能想编写一个自定义 Spring 转换器 BigInteger => ObjectId 和 ObjectId => BigInteger。
请参阅此处的文档部分: http://static.springsource.org/spring-data/data-document/docs/current/reference/html/#d0e2670
- - - 更新 - - -
似乎这种转换器已经存在于 Spring-Data-MongoDB 库中: http://static.springsource.org/spring-data/data-document/docs/1.0.0.M1/api/org/springframework/数据/文档/mongodb/SimpleMongoConverter.ObjectIdToBigIntegerConverter.html
所以你只需在 Spring 配置中指定它即可。
| 归档时间: |
|
| 查看次数: |
6328 次 |
| 最近记录: |