Spring mongo:如何在没有VO的情况下自定义_id?

时间:2014-05-14 02:39:43

标签: java spring mongodb spring-mvc primary-key

我正在使用MongoDB和Spring 3.2.8。

我要做的是使用MyBatis查询Oracle数据库,并将从查询返回的ResultMap放入Mongo DB。

情况。

  • ResultMap的效果与我预期的相当。它会返回正确的HashMap<String, Object>List<HashMap<String, Object>

  • 在那个ResultMap中,我有一个名为&#39; service_id&#39;的元素。哪个应该取代&#39; _id&#39;在mongo。

  • 使用MongoTemplate推送到mongoDB(org.springframework.data.mongo.core)也很有效。

  • 问题是因为mongoDB使用自己的&#39; _id&#39;作为主键,如果我把相同的对象放大一倍。

问题。

  • 我如何使用&#39; service_id&#39;作为mongo的主键?

条件

源代码的一部分。     tmp.insert(map,collectionName); 这个tmp是MongoTemplate,我认为它没有任何方法来控制&#39; _id&#39;。

谢谢:D

1 个答案:

答案 0 :(得分:1)

简单的解决方案,但我认为这是正统的方式。

  • 将一个元素放入ReturnMap。例如map.put("_id", map.get("service_id"));

现在,我可以防止重复值。

如果有更好的方法,我会选择那个作为答案:D谢谢