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);
Другие вопросы по тегам