0
私は2枚の簡単な書類MyDoc
とNestedDoc
春MongoRepositoryの#1のfindAll:ConverterNotFoundException
MyDoc
あります
public class MyDoc {
@Id
private final String id;
private final NestedDoc nested;
public MyDoc (MyIdentifier myIdentifier, Nested nested) {
this(myIdentifier.toString(),
new NestedDoc(nested.getIdentifier(), nested.getStp()));
}
@PersistenceConstructor
public MyDoc (String id, NestedDoc nestedDoc) {
this.id = id;
this.nestedDoc = nestedDoc;
}
// ...
}
NestedDoc
を:
public class NestedDoc {
private final String identifier;
private final Stp stp; // is an enum
@PersistenceConstructor
public NestedDocDoc (String identifier, Stp stp) {
this.identifier = identifier;
this.stp = type;
}
// ...
}
私はMyMongoRepo#findAll
を呼び出すときに
は今、私はOutpout期待
org.springframework.core.convert.ConverterNotFoundException:
No converter found capable of converting from type [java.lang.String]
to type [com.xmpl.NestedDoc]
を得る:
{
id: 123,
nested: {
identifier: "abc",
stp: "SOME_CONSTANT",
}
}
とMyMongoRepo#findAll
:私は(RestControllerのように)MyMongoRepo#findByIdentifier
を呼び出すと
私のような何かを得ますすべての既知のMyDocsを含む配列を返す必要があります。
この問題に加えて、なぜコンバータが最初に必要なのかを知ることは興味深いでしょう。変換する文字列を必要とするフードの下ではどうなりますか?
なぜ私はそれを考えなかったのですか?それはとても明らかです!ハハ、ありがとう。私のアプリケーションでは複数のリポジトリがあり、起動時には通常すべてのコレクションを削除します。その特定のレポの行を忘れてしまった。だから、私は以前のネストされたバージョンの文書が単純な文字列だった時代遅れだった...神様、私は今自分自身が嫌いです! –