1

MongoDB を使用して春の MVC アプリを構築しています。春にmongoから行列を読み取るにはどうすればよいですか? MongoTemplate クラスを使用して問題なく mongo に永続化するモデルがあります。

Matrix m = new Matrix();
m.setId(UUID.randomUUID().toString());
m.setValues(values);
mongoTemplate.insert(m, "matrix");

上記のコードは問題なく動作します。値は double[][] であり、永続化されます。MongoRepository クラスの拡張機能を使用して、行列のリストの findAll() 呼び出しを行っています。

public interface MatrixRepository extends MongoRepository<Matrix, String> {

    Matrix findById(String id);
}

そして私のサービスクラスでは:

public List<Matrix> readAll() {
    return matrixRepository.findAll();
}

これを呼び出すと、次のスタック トレースが発生します。

org.springframework.data.mapping.model.MappingInstantiationException: Could not instantiate bean class [java.lang.Double]: No default constructor found; nested exception is java.lang.NoSuchMethodException: java.lang.Double.<init>()
    org.springframework.data.mapping.model.BeanWrapper.<init>(BeanWrapper.java:105)
    org.springframework.data.mapping.model.BeanWrapper.create(BeanWrapper.java:73)
    org.springframework.data.mongodb.core.convert.MappingMongoConverter.read(MappingMongoConverter.java:239)
    org.springframework.data.mongodb.core.convert.MappingMongoConverter.read(MappingMongoConverter.java:187)
    org.springframework.data.mongodb.core.convert.MappingMongoConverter.readCollectionOrArray(MappingMongoConverter.java:736)
    org.springframework.data.mongodb.core.convert.MappingMongoConverter.getValueInternal(MappingMongoConverter.java:695)
    org.springframework.data.mongodb.core.convert.MappingMongoConverter$2.doWithPersistentProperty(MappingMongoConverter.java:252)
    org.springframework.data.mongodb.core.convert.MappingMongoConverter$2.doWithPersistentProperty(MappingMongoConverter.java:242)
    org.springframework.data.mapping.model.BasicPersistentEntity.doWithProperties(BasicPersistentEntity.java:173)
    org.springframework.data.mongodb.core.convert.MappingMongoConverter.read(MappingMongoConverter.java:242)
    org.springframework.data.mongodb.core.convert.MappingMongoConverter.read(MappingMongoConverter.java:187)
    org.springframework.data.mongodb.core.convert.MappingMongoConverter.read(MappingMongoConverter.java:151)
    org.springframework.data.mongodb.core.convert.MappingMongoConverter.read(MappingMongoConverter.java:73)
    org.springframework.data.mongodb.core.MongoTemplate$ReadDbObjectCallback.doWith(MongoTemplate.java:1693)
    org.springframework.data.mongodb.core.MongoTemplate.executeFindMultiInternal(MongoTemplate.java:1444)
    org.springframework.data.mongodb.core.MongoTemplate.doFind(MongoTemplate.java:1259)
    org.springframework.data.mongodb.core.MongoTemplate.doFind(MongoTemplate.java:1248)
    org.springframework.data.mongodb.core.MongoTemplate.find(MongoTemplate.java:471)
    org.springframework.data.mongodb.repository.support.SimpleMongoRepository.findAll(SimpleMongoRepository.java:255)
    org.springframework.data.mongodb.repository.support.SimpleMongoRepository.findAll(SimpleMongoRepository.java:192)
    sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
4

1 に答える 1

1

スプリング データ mongodb 1.0.0.M5 環境で、モノゴ エンティティ クラスに Double または double フィールドがある場合に発生します。pom.xml で spring data mongodb を新しいバージョン 1.3.3 RELEASE に置き換えることで、これを修正できます。

于 2014-03-07T09:27:11.783 に答える