DBRefs (ссылки на документы Mongo) не загружены
Я использую Mongo в его простейшем аватаре (в сочетании с Spring Data).
У меня есть две (первого класса) сущности (@Documents) A и B, где A имеет ссылку (@DBRef) на B внутри. Все отлично работает при создании A и B. Однако при чтении объекта A (по Id) ссылка B всегда равна нулю.
Я полагаю, что DBRefs охотно выбираются по умолчанию (см. http://static.springsource.org/spring-data/data-document/docs/current/reference/html/), но в настоящее время поведение противоречит тот. Есть идеи почему?
2 ответа
Переход к Spring Data Mongo M5 решил эту проблему. Так что, должно быть, ошибка до тех пор.
Вы правы, любые 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);