在Grails中缓存 - 默认情况下缓存什么以及可以启用什么?

kno*_*orv 2 grails hibernate grails-orm

我很好奇Grails框架提供的对数据库/ GORM对象缓存的支持.

  • 默认情况下启用了哪些数据库缓存?
  • 框架提供了哪些数据库缓存,但默认情况下是禁用的?
  • 您通常在Grails项目中启用/禁用哪种数据库缓存?为什么?

小智 5

Grails使用Hibernate for GORM,因此数据库缓存功能实际上是由Hibernate提供的.

  1. 启用了Hibernate第一级缓存(仅持续大约用户请求的时间).它无法禁用.

  2. Hibernate二级缓存也已启用,但可以通过配置关闭.此缓存将长时间保存数据(可由对象类型配置),除非某些内容使数据无效(更新)

对于重读应用程序,应该启用二级缓存,您将节省大量的数据库访问,并且它对您的应用程序是100%透明的(几乎没有成本).

问候,

文森特