ここでは、MongoDBのSpring-Data内の別のものからオブジェクトを参照するための@DBRefアノテーションを試しています。しかし、MongoAppクラスを実行した後、結果テーブルのデータがDBに挿入されていますが、次の例のように、Personオブジェクト挿入の例外が見つかりませんでした。ここで何が起こっていますか?アプリケーション上でその件次の例外を実行した後参照のために@DBRefアノテーションを使用している間のMongoDB例外のスプリングデータ
public class Result {
@Id
@NotNull
private String subjectId;
@NotNull
private String subName;
@NotNull
@Max(value = 100)
private int marks;
public Result(String subjectId, String subName, int marks) {
this.subjectId = subjectId;
this.subName = subName;
this.marks = marks;
}
}
public class Person {
@Id
@NotNull
private String abc;
@NotNull
@Size(max = 8, min = 4, message = "Not a Valid Name")
private String name;
@Max(value = 100)
private int age;
@DBRef(collection = "result")
private Result result;
public Person(String id, String name, int age, Result result) {
this.abc = id;
this.name = name;
this.age = age;
this.result = result;
}
}
public static void main(String[] args) throws Exception{
String location = "com/springMongo/core/applicationContext-springdata.xml";
ApplicationContext context = new ClassPathXmlApplicationContext(location);
MongoOperations mongoOps = (MongoOperations) context.getBean("mongoTemplate");
mongoOps.insert(new Result("1","Math",50));
Query query = new Query(Criteria.where("subjectId").is("1"));
mongoOps.insert(new Person("1212", "Ravi", 34, mongoOps.findOne(query, Result.class)));
}
Exception in thread "main" java.lang.NoSuchMethodError: org.springframework.data.mongodb.core.mapping.MongoPersistentProperty.isCollection()Z
at org.springframework.data.mongodb.core.convert.MappingMongoConverter.writePropertyInternal(MappingMongoConverter.java:448)
at org.springframework.data.mongodb.core.convert.MappingMongoConverter$5.doWithAssociation(MappingMongoConverter.java:433)
at org.springframework.data.mapping.model.BasicPersistentEntity.doWithAssociations(BasicPersistentEntity.java:185)
at org.springframework.data.mongodb.core.convert.MappingMongoConverter.writeInternal(MappingMongoConverter.java:420)
at org.springframework.data.mongodb.core.convert.MappingMongoConverter.writeInternal(MappingMongoConverter.java:351)
at org.springframework.data.mongodb.core.convert.MappingMongoConverter.write(MappingMongoConverter.java:316)
at org.springframework.data.mongodb.core.convert.MappingMongoConverter.write(MappingMongoConverter.java:77)
at org.springframework.data.mongodb.core.MongoTemplate.doInsert(MongoTemplate.java:592)
at org.springframework.data.mongodb.core.MongoTemplate.insert(MongoTemplate.java:554)
at org.springframework.data.mongodb.core.MongoTemplate.insert(MongoTemplate.java:545)
at com.springMongo.core.MongoApp.main(MongoApp.java:43)
どのバージョンのスプリングデータとmongodbドライバを使用していますか? – mstearn
mongo-java-driver 2.7.2; spring-data-mongodb 1.0.0.M5; spring-core 3.1.0.RELEASE;スプリングコンテキスト3.1.0.RELEASE; spring-data-commons-core 1.2.0.RELEASE –