我最近读了一本《Java Persistence with Hibernate》.
我有一个关于Hibernate的一级缓存的生命期的疑问,
书上说hibernate的一级缓存是unit of work(可能是transaction?)级别的,但是又说一个persistence context(session)内有一个一级缓存。
1.但是我不明白unit of work指的是什么,请问是transaction吗?
2.对于一级缓存,是在一个transaction结束之后就消失了,还是在一个session对象被垃圾回收之后才结束呢?
3.还有一个问题我也很困惑,就是,如果我现在的线程1的一级缓存内已经有读出来的数据,然后线程2修改了数据库的内容,那么线程1的一级缓存内的数据就和数据库的数据不一样了,这样当线程1的程序读一级缓存内的数据的时候,读出来的不就是dirty的数据了吗?这个问题应该如何解决呢?
谢谢了!:)