为什么hibernate没有在事务中读取更新?

时间:2014-07-03 17:43:07

标签: java spring hibernate transactions

我有一个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。

0 个答案:

没有答案