Hai ragione, tutti i DBRef vengono recuperati con entusiasmo, ma non vengono salvati con entusiasmo (AFAIK). Se A ha un riferimento a B, quando salvi A, Spring Data/MongoDB non salva automaticamente B, devi farlo.
// 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);