Masz rację, wszelkie DBRef są chętnie pobierane, ale nie są chętnie zapisywane (AFAIK). Jeśli A ma odniesienie do B, kiedy zapisujesz A, Spring Data/MongoDB nie zapisuje automatycznie B, musisz to zrobić.
// 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);