我有一个Spring和Hibernate的应用程序以及类似的场景。
class Sheet{
Set<Entry> entries;
}
class Entry{
Sheet belongsTo;
String name;
}
class Service{
@Autowired GenericDao dao;
@Transactional(readOnly=false)
private void doSomething(){
Sheet s1 = new Sheet();
dao.create(s1);
Entry a = new Entry();
a.setSheet(s1);
dao.create(a);
// Now I expect, that when updating my sheet there should be my Entry 'a' in the PersistentBag of the sheet
dao.refresh(s1)
s1.getEntries(); // <-- entry 'a' is not in the List.
}
}
当然,课程中有setter / getters和必要的注释。
如果我在另一个服务调用中调用s1.getEntries()
(使用新事务,并且在上面的事务提交之后),我在表单列表中有条目'a'
。
我想知道为什么我无法在同一笔交易中读取我在交易中所做的更改。 为什么PersistentBag没有得到更新?
我正在使用Hibernate 4.3.5和Spring 4.0.5。