DBRefs (ссылки на документы Mongo) не загружены - PullRequest
4 голосов
/ 09 ноября 2011

Я использую Mongo в самом простом из возможных аватар (в сочетании с Spring Data).

У меня есть две (первоклассные) сущности (@Documents) A и B, где A имеет ссылку (@DBRef) Б внутри него.Все работает нормально при создании A и B. Однако, при чтении объекта A (по Id), ссылка B всегда null .

Я считаю, что DBRefs охотно выбираются по умолчанию (см. http://static.springsource.org/spring-data/data-document/docs/current/reference/html/#mapping-usage-references), но поведение в настоящее время против этого. Есть идеи почему?

Ответы [ 2 ]

2 голосов
/ 11 ноября 2011

Вы правы, любые DBRefs с нетерпением извлекаются, но они не с нетерпением сохраняются (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);
1 голос
/ 22 ноября 2011

Переход к сборке Spring Data Mongo M5 решил эту проблему.Так что, должно быть, ошибка до тех пор.

...