相关疑难解决方法(0)

用Hibernate + Spring缓存 - 一些问题!

我正致力于使用Spring 3和Hibernate 3.6开发Web应用程序.目前我试图了解如何使用Spring和Hibernate进行缓存.我找到了一些关于使用Hibernate缓存的消息来源以及一些关于Spring的消息,我现在尝试将我的信息结合在一起.我仍然对这两个框架都有一些问题,如果有人能够回答它们或告诉我这里列出的事实是否正确,我会很高兴.

大多数时候,简短的答案(是/否)就足够了.我认为这个列表对其他人也很有用,他们想要了解spring和hibernate的缓存是如何工作的.

General

1) Hibernate支持以下缓存:第一级缓存,第二级缓存,查询缓存

2) Spring本身支持以下缓存可能性:只是方法缓存

1st Level Cache

3)第一级缓存是每个Hibernate应用程序的一部分.

4)为每个休眠会话创建第一级缓存.

5)第一级缓存中保存了什么?对象或只是其属性的值?查询及其结果?

2nd Level Cache

6)我发现:每个应用程序使用ONCE二级缓存.那不是假的吗?是不是每次sessionfactory使用ONCE?和:多个sessionfactorys =多个第二级缓存可能吗?

7)在二级缓存中保存的内容:在我看来,只是属于一条记录的值,而不是对象本身.

8)当存储来自二级缓存中的一个记录的值时,它是否可以存储相关值(来自通过外键连接的对象)?

9)更新二级缓存中一个对象的值时,是否可以更新缓存中与其连接的对象的值?

10)当一个对象的值发生变化时,如何更新二级缓存?冲洗?我可以只更新缓存的一部分,还是必须更新整个缓存?

11)二级缓存在哪里有意义,哪里不存在?

12)缓存模式:每个缓存模式都提供不同的缓存策略吗?例如,对于缓存模式"只读",不需要同步数据库和缓存吗?其他缓存模式是否提供同步?我认为同步必须由开发者自己完成?

SessionFactory

13)查询缓存和二级缓存有什么区别?在我看来:在查询缓存中,结果集被保存,但没有使用它们的值,只有它们的ID.当再次使用查询并且结果集仍然"正确"时,将从二级缓存中查询属于id的值

14)对于查询缓存,必须使用二级缓存?

15)查询缓存哪里有意义,哪里不存在?

Query Cache

16) Spring是否提供了比方法缓存更多的缓存可能性?

17)方法缓存没有与hibernate缓存相关联

18)但是:对于方法缓存,第二级是必要的,比如ehcache(也可以被hibernate使用)

19)可以在没有数据库查询的情况下使用方法缓存吗?

Spring

20)如果使用ehcache作为二级缓存的hibernate和用于方法缓存的spring的ehcache,我可以使用相同的ehcache-instance吗?是否有可能混淆了什么?

21)当使用第一级缓存和第二级缓存时,它们会混淆吗?在查询数据库时,结果来自哪里,第一级或第二级缓存?第一级缓存是否与二级缓存一起使用?

22)其他任何可以通过使用我提到的缓存混淆的东西?:-)

谢谢你的回答,不管是什么问题!:-)

spring caching hibernate ehcache second-level-cache

63
推荐指数
1
解决办法
1万
查看次数

Hibernate实现.我们是否支付反思罚款?

很久以前,我正在使用反射创建一个迷你ORM.

在阅读反思时,我得到了类似的答案:

Java反射性能

这是完全有意义的,我退出我的迷你orm并锐化我的CTRL + C,CTRL + V键(lib旨在避免不得不一次又一次地重写我正在处理的Web应用程序中不同表的相同片段)

多年后由于某种原因,我现在不记得(也不想记得)我正在阅读(或试图...)Hibernate源代码,因为我想知道他们是否使用AOP动态生成代码并避免反思惩罚,但令我惊讶的是,我所看到的只是纯粹的反思.

这是否意味着最受欢迎的ORM框架,确切地说是几年前我不鼓励我继续我的天真努力?:")

我的问题是:有人可以确认我对Hibernate实现的理解吗?他们是否会动态生成字节码以提高性能?或者我们(当我们使用它时)总是支付反射惩罚(顺便说一句,如果差异是在某些ms,我们没有人注意到或抱怨)

我们是否支付反思罚款?如果我们是,我认为这是值得的!

问候.

java reflection hibernate

5
推荐指数
3
解决办法
6268
查看次数