我有以下模型:
Foo
实体和之间的多对多Bar
。Foo 有一个用Bar
注释的 LinkedHashSet @OrderBy
。
Controller 包含一个方法,该方法首先将一个新 Bar 保存到集合中,然后从一个 Foo 中获取所有 Bar。
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();
}
问题是,在调用该方法时,除了最后一个引入的 Bars 之外,所有 Bars 都是有序的。我认为它与休眠一级缓存有关,但我不确定与该方法关联的会话何时开始或结束。
来自该控制器方法的两个会话方法是否在同一个会话中运行?