知道何时达到数据库与缓存
鉴于Hibernate的所有智能以及它的各种缓存策略,我如何知道某个操作是否导致物理数据库命中或来自缓存?
传统上,您将使用Hibernate内置缓存日志记录,并在开发期间进行一些分析,以调整整个事物,直到您获得预期的行为。 要激活缓存日志记录,请更改日志级别,例如使用log4j.xml
:
请注意,我不建议在生产平台上使用它(它可能非常冗长,因此可能会降低执行速度)。
有关更多详细信息,请参阅文档的日志记录 。
Hibernate Statistics应该告诉你所有你需要知道的事情:
启用: Hibernate核心参考
使用: Hibernate:优化查询时使用Hibernate统计信息
API: org.hibernate.stat.Statistics
我不太确定,但我会尝试调高org.hibernate记录器的日志记录级别,看看是否记录了该信息(最有可能是“调试”或更低级别)。