hibernate如何执行缓存机制,第一级缓存和二级缓存之间有什么区别

时间:2016-07-21 07:22:25

标签: hibernate

hibernate缓存机制如何工作?

缓存的要求是什么?我们何时需要二级缓存?

我知道如何实现这一目标,但我需要获得实时问题和方案,以便我们能够实现这一目标。

3 个答案:

答案 0 :(得分:0)

你的问题很广泛。

hibernate缓存机制如何工作?

Ans - 它根据cache的级别在会话/会话工厂的帮助下工作.Session / Session工厂保存实体对象的值,并用其主键映射。它阻止我们在db中使用较小的db命中对象(即具有相同的主键或id)。

缓存的要求是什么?我们何时需要二级缓存?

Ans - 如上所述,它有助于提高性能。较小的db会提高性能。第一级缓存适用于单个会话。它是默认缓存。

当我们要求实体需要在同一会话工厂的不同会话之间共享时,我们使用二级缓存。 你可以阅读更多here

答案 1 :(得分:0)

在以下情况下有用:

You read-write database only via Hibernate because the second level cache is invalidated / updated per entity when an entity is updated/deleted via hibernate. It is not invalidated if the database is updated in a different way. If you are using query use query cache otherwise it will not work for query.

答案 2 :(得分:0)

第一级缓存始终与Session对象关联。 Hibernate默认使用此缓存。在这里,它处理一个接一个的事务,意味着不会多次处理一个事务。主要是它减少了在给定事务中生成所需的SQL查询的数量。这不是在事务中完成的每个修改之后更新,而是仅在事务结束时更新事务。

二级缓存始终与Session Factory对象关联。在运行事务时,它在两者之间加载会话工厂级别的对象,以便这些对象可供整个应用程序使用,而不是绑定到单个用户。由于对象已经加载到缓存中,因此每当查询返回一个对象时,就不需要进行数据库事务。这样二级缓存就可以工作了。在这里我们也可以使用查询级缓存。稍后我们将讨论它。