У меня есть следующая модель:
много ко многим между сущностями Foo
и Bar
. Foo имеет LinkedHashSet Bar
с аннотацией @OrderBy
.
Контроллер включает метод, который сначала сохраняет новый Бар в наборе, а затем получает весь Бар от одного Foo.
Set<Bar> methodName(FooId fid, Bar b){
fooService.addBar(fid, b);
return fooService.getBarsOfFoo(fid);
}
методы обслуживания:
@Transactional
void addBar(UUID fid, Bar b){
Foo f = fooRepository.getFoo(fid);
f.getBars().add(b);
}
@Transactional(readOnly = true)
Set<Bar> getBarsOfFoo(UUID fid){
return fooRepository.getFoo(fid).getBars();
}
проблема в том, что при вызове метода все бары упорядочены, кроме последнего введенного. Я думаю, что это как-то связано с кэшированием первого уровня в спящем режиме, но я не уверен, когда сеанс, связанный с этим методом, начинается или заканчивается.
Оба метода сеанса из этого метода контроллера выполняются в одном и том же сеансе?