신호라는 간단한 클래스가 있습니다. 클래스 외모는 다음과 같습니다 :내 수업 용 코덱을 찾을 수 없습니다.
public class Signal {
private String id;
private Date timestamp;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public Date getTimestamp() {
return timestamp;
}
public void setTimestamp(Date timestamp) {
this.timestamp = timestamp;
}
}
MongoDB (v3.4)에 신호를 삽입하려고합니다.
org.bson.codecs.configuration.CodecConfigurationException : 클래스 in.co.을위한 코덱을 찾을 수 없습니다 나는 다음과 같은 예외를 얻고있다
public boolean xyz(Signal signal) { try { DatabaseConnection databaseConnection =DatabaseConnection.getInstance(); MongoClient mongoClient = databaseConnection.getMongoClient(); MongoDatabase db = mongoClient.getDatabase("myDb"); MongoCollection<Signal> collection = db.getCollection("myCollection", Signal.class); collection.insertOne(signal); return true; } catch (Exception e){ logger.error("Error", e); return false; } }
을 : 나는 삽입하는 다음과 같은 방법을 사용하고 있습니다 mysite.webapi.models.Signal.
나는 유사한 질문 here을 확인했지만 삽입 코드가 다릅니다. 나는 힌트를 답에서 가져 왔고 나의 방법을 수정했으나 깨끗하게 보지 못했다. 수정 된 방법은 다음과 같습니다.
public boolean xyz(Signal signal) {
try {
DatabaseConnection databaseConnection =DatabaseConnection.getInstance();
MongoClient mongoClient = databaseConnection.getMongoClient();
MongoDatabase db = mongoClient.getDatabase("myDb");
MongoCollection<Document> collection = db.getCollection("myCollection");
Document doc = new Document();
doc.put("id", signal.getId());
doc.put("timestamp", signal.getTimestamp());
doc.put("_id", new ObjectId().toString());
collection.insertOne(doc);
return true;
} catch (Exception e){
logger.error("Error", e);
return false;
}
}
모델에 대해 사용자 정의 '코덱'을 정의 할 수 있습니다. – nullpointer
@nullpointer 나는 pojo 클래스 용 코덱을 썼다. 오른쪽 방향으로 나를 가리 키시겠습니까? –
그게 힌트 였어, 네가 시도해 볼 수 있고 거기서도 작동하지 않는다면 다시 돌아올 수 있다는 것을 확신한다.) – nullpointer