Новый пост с более простым тестовым примером моей проблемы
Ленивый DBRef моего класса должен вызывать LazyLoadingInterceptor и давать мне реальный объект за моей ссылкой, когда я получаю доступ к свойству, но ничего не происходит.
Неудачный тест
public class TestLazyLoadNotWorking {
@Autowired
ARepository aRepository;
@Before
public void setUp(){
aRepository.deleteAll();
}
@Test
public void TestLazyLoadNotWorking(){
A a1 = new A("a1");
A a2 = new A("a2");
a1.a = a2;
aRepository.save(a1);
aRepository.save(a2);
aRepository.findById("1").ifPresent(a -> assertThat(a.a.a_property).isNotNull());
}
}
Класс данных
@Document
public class A {
private static int counter = 0;
@Id
String id = Integer.toString(++counter);
@DBRef(lazy = true)
public A a;
public String a_property;
public A(String a_property){ this.a_property = a_property;}
}