5

私は可能な限り単純なアバターで Mongo を使用しています (Spring Data と組み合わせて)。

2 つの (ファースト クラス) エンティティ (@Documents) A と B があり、A にはその中に B の参照 (@DBRef) があります。A と B を作成するときはすべて正常に動作します。ただし、オブジェクト A を (ID で) 読み取るとき、参照 B は常にnullです。

DBRef はデフォルトで熱心にフェッチされると思いますが ( http://static.springsource.org/spring-data/data-document/docs/current/reference/html/#mapping-usage-referencesを参照)、現在の動作は反対ですそれ。理由はありますか?

4

2 に答える 2

2

あなたは正しいです.DBRefは積極的にフェッチされますが、熱心に保存されません(AFAIK)。A に B への参照がある場合、A を保存するときに、Spring Data/MongoDB は B を自動的に保存しません。

// Incorrect, upon retrieval a.getB() == null
A a = new A();
a.setB(new B());
repositoryA.save(a);

// Correct (to the best of my knowledge)
B b = repositoryB.save(new B());
A a = new A();
a.setB(b);
repositoryA.save(a);
于 2011-11-11T01:44:48.107 に答える
1

Spring Data Mongo M5 ビルドに移行すると、これが解決されました。そのため、それまではバグでなければなりません。

于 2011-11-22T18:20:56.200 に答える