java - 找不到能够从 org.bson.types.ObjectId 类型转换为 int 类型的转换器

标签 java mongodb spring-data-mongodb

我正在使用 Spring 数据和 mongodb 来使用此函数获取所有产品:

@Repository
public class ProductDao  {

    @Autowired
    private MongoOperations mongoOperations;
    public List<Product> getAll() {
            return mongoOperations.findAll(Product.class);
        }
}

我的产品类别:

@Document(collection = Product.COLLECTION_NAME)
public class Product implements Serializable {

    public Product() {
    }

    public static final String COLLECTION_NAME = "product";

    @Id
    private String _id;
    private String name;
    private DateTime date_time;
    private int fk_properties;
    private List<Integer> fk_parts;
}

错误:

    org.springframework.core.convert.ConverterNotFoundException: 
No converter found capable of converting from type org.bson.types.ObjectId to type int

如何解决?

更新:

我在 lib 文件夹中有 spring-core-4.1.0.RELEASE.jar ,其中应该包含所需的转换器。

更新2: 文档

{ 
    "_id" : ObjectId("5449567cdf97f277c50d1ce2"), 
    "name" : "2014 ISF", 
    "auction_start" : ISODate("2014-12-08T12:00:00.000+0200"), 
    "auction_end" : ISODate("2014-12-08T14:00:00.000+0200"), 
    "listed" : "F", 
    "fk_product_property" : ObjectId("5229567cdf97f277c50d1ce2"), 
    "fk_parts" : [
        ObjectId("5339567cdf97f277c50d1ce2"), 
        ObjectId("5349567cdf97f277c50d1ce2")
    ]
}

最佳答案

您正在尝试将 ObjectId 隐式转换为整数:

private List<Integer> fk_parts;

应该是:

private List<ObjectId> fk_parts;

另请注意 private int fk_properties;被映射到什么都没有。如果你希望它映射到 fk_product_property正如我怀疑的那样,它应该是:

private ObjectId fk_product_property

@Field("fk_product_property") private ObjectId fk_properties;

无论如何,该字段也应该映射到 ObjectId也是如此。

关于java - 找不到能够从 org.bson.types.ObjectId 类型转换为 int 类型的转换器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25897722/

相关文章:

spring-data-mongodb - 映射异常 : Ambiguous field mapping detected

java - 安卓 PACT 演示应用程序

java - 获取(Vertical)ViewPager的当前Item

java - 将 MessageDigest 与 J2ME 应用程序一起使用

java - Derby 嵌入式驱动程序在哪里?

mongodb - 如何检索Mongodb中数组中存在的所有匹配元素?

c# - 如何使用 c# MongoCursor 获取不同的值?

c++ - 在 Windows 上编译 mongo db 客户端示例时出现链接器错误

mongodb - 如何在 mongodb 中保存 java.time.Instant 并无异常地加载相同的值?

mongodb - 使用 ReadPreference=NEAREST 的 Mongos 路由