提问:Hibernate一级缓存的生命周期是多长?

我最近读了一本《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的数据了吗?这个问题应该如何解决呢?

谢谢了!:)

本人才疏学浅,试着回答一下吧。
hibernate的缓存分为session和sessionFactory两个缓存。而sessionFactory又分为内置缓存和外置缓存。session缓存就是所谓的一级缓存,是不可以卸载,也不可以设置的,而sessionFactory得外置缓存就是所谓的二级缓存,是可以设置的。既然session缓存就是一级缓存,那么hibernate的一级缓存的生民周期就应该是session吧,而不是一个事务结束后就结束。

http://qzone.qq.com/blog/253005528-1229353030
可以看看这个博客上的讨论。讲的比较详细。