使用二级缓存时最佳的查询策略和实体配置是什么

问题描述 投票:0回答:1

激活二级缓存后,对于我的实体而言,最佳查询策略和最佳配置是什么?

例如,我有两个实体User和Group与这些关系:

一个用户到多个组:用户拥有的组。这里是User类中的Group集合和Group类中的User属性(所有者)。

具有属性(状态,日期等)的许多用户到多个组:组的成员。由于附加服饰,因此有一个特定的类映射中间表,称为UserGroup。 User类中有一个UserGroup的oneToMany集合,而Group类中有一个。

相关的属性或集合被配置为以惰性模式检索。所有实体类和集合都是可缓存的。

到目前为止,如果我希望与他们的成员一起检索用户的组,我正在发出这种类型的请求:

select g from Group g left join fetch UserGroup ug left join fetch ug.user u where g.group.owner = :idOwner

现在具有用作键值存储的二级缓存,难道不是更容易有效地从ID中获取用户,然后让Hibernate以Lazy模式恢复组和成员以最终将数据保存到第二级缓存?下一个查询将使用缓存,那么使用联接有什么好处?另外,我不必配置要缓存的任何优化查询。

谢谢。

激活二级缓存后,对于我的实体而言,最佳查询策略和最佳配置是什么?例如,我有两个具有以下关系的用户和组实体:一个用户...

hibernate orm hazelcast second-level-cache
1个回答
0
投票

我无法对连接的成本发表评论(Hibernate / JPA专家在那里可能会提供更好的答案),但是我可以对缓存本身发表评论。

© www.soinside.com 2019 - 2024. All rights reserved.