В этом примере entityManager и dataManager возвращают разные результаты. DataManager null, а entityManager правильный ответ. Если посмотреть логи sql, то видно что они оба берут данные из кеша. Я ожидал получить одинаковые результаты
Спасибо за то, что обнаружили проблему и приложили проект для воспроизведения! Завели ишью чтобы пофиксить ее.
Проблема связана с некорректной работой ленивой загрузки в случае нескольких вложенных обратных ссылок в закэшированных сущностях.
Как воркэраунд, помимо отключения кэша для вложенных сущностей, можно явно включить в fetch plan полный путь по которому происходит обращение. Тогда, вместо ленивой подгрузки при каждом обращении к референсному атрибуту, все сущности будут прогружены сразу, правильно и в одной транзакции:
val user = dataManager.load(User::class.java).id(newUser.id)
.fetchPlan {
it.add("testEntity.testEntity1.test.user", FetchPlan.BASE)
}
.one()