使用Hibernate作为ORM机制的Web应用程序中的L1和L2缓存有什么区别?

Rom*_*man 9 java orm caching hibernate

我只想了解一些关于使用L1缓存和L2缓存的标准目的的一般信息.

我很好奇,因为我正在调查使用兵马俑作为二级缓存的系统,我发现它也有一级缓存.

Cha*_*dan 16

L1 Cache是​​每个Hibernate会话存在的缓存,并且此缓存不在线程之间共享.这个缓存利用了Hibernate自己的缓存.

L2 Cache是​​一个超出Hibernate会话的缓存,可以在线程之间共享.对于此缓存,您可以使用Hibernate附带的缓存实现(如EHCache)或其他类似JBossCache2的实现


Ant*_*lev 0

如果 Hibernate 与 NHibernate 类似(确实如此,除了相反),那么它Session就是一级缓存。只是它不是一般意义上的缓存,而是一个身份映射。