知道何时达到数据库与缓存

鉴于Hibernate的所有智能以及它的各种缓存策略,我如何知道某个操作是否导致物理数据库命中或来自缓存?

传统上,您将使用Hibernate内置缓存日志记录,并在开发期间进行一些分析,以调整整个事物,直到您获得预期的行为。 要激活缓存日志记录,请更改日志级别,例如使用log4j.xml

    

请注意,我建议在生产平台上使用它(它可能非常冗长,因此可能会降低执行速度)。

有关更多详细信息,请参阅文档的日志记录 。

Hibernate Statistics应该告诉你所有你需要知道的事情:

启用: Hibernate核心参考

使用: Hibernate:优化查询时使用Hibernate统计信息

API: org.hibernate.stat.Statistics

我不太确定,但我会尝试调高org.hibernate记录器的日志记录级别,看看是否记录了该信息(最有可能是“调试”或更低级别)。