Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hibernate中的二级缓存(Ehcache)以及Hibernate搜索_Hibernate_Jpa_Spring Data Jpa_Ehcache_Hibernate Search - Fatal编程技术网

Hibernate中的二级缓存(Ehcache)以及Hibernate搜索

Hibernate中的二级缓存(Ehcache)以及Hibernate搜索,hibernate,jpa,spring-data-jpa,ehcache,hibernate-search,Hibernate,Jpa,Spring Data Jpa,Ehcache,Hibernate Search,我使用SpringDataJPA和hibernate作为底层实现。 对于全文搜索和其他一些搜索查询,我使用Hibernate搜索 我正在考虑对未编制索引的字段上的查询使用Ehcache启用二级缓存 可以同时使用这两种方法吗?这一策略是否有任何价值。您是否也使用非Hibernate搜索(Lucene)查询?否则,查询缓存就没有用了。不过,如果您使用非Lucene查询,这可能是有意义的。但是,我建议通过Hibernate搜索驱动所有查询,并确保搜索所需的所有数据都已编制索引。如果这不能回答您的问题,

我使用SpringDataJPA和hibernate作为底层实现。 对于全文搜索和其他一些搜索查询,我使用Hibernate搜索

我正在考虑对未编制索引的字段上的查询使用Ehcache启用二级缓存


可以同时使用这两种方法吗?这一策略是否有任何价值。

您是否也使用非Hibernate搜索(Lucene)查询?否则,查询缓存就没有用了。不过,如果您使用非Lucene查询,这可能是有意义的。但是,我建议通过Hibernate搜索驱动所有查询,并确保搜索所需的所有数据都已编制索引。如果这不能回答您的问题,您可以提供一个更具体的示例。

Ya目前我使用的是lucene和非lucene查询的混合,因此我们正在研究二级缓存。如果您使用的是混合查询类型,您可以通过查询缓存加速ORM特定的查询。顺便说一句,二级实体缓存应该对这两种情况都有利。你也在利用这个吗?但如前所述,我可能会通过Hibernate搜索驱动所有查询。你的意思是二级缓存也会提高我的Hibernate搜索性能吗?这要看情况而定。Hibernate搜索的默认行为(除非使用投影)是对Lucene索引进行搜索,以确定与查询匹配的实体的主键。然后从数据库加载匹配的实体(以便处理托管实体)。如果您启用了第二级实体缓存,那么在缓存相关实体的情况下,您可能会从中受益。