我将GORM用于数据库中的系统元数据。但是,预计它不会直接使用,而是通过缓存使用。该系统完全依赖于元数据的固有工作。因此,这里所期望的是,即使在作为最终源的GORM表中发生模式更改,数据驻留在高速缓存系统中也应该没有任何问题。只有当预期的数据不存在时,它才应该查询最终导致问题的数据库表。我知道这可能不是生产级别系统所预期的,但我的项目目前处于开发阶段,涉及多个人,其中变更同时发生而没有其他知识,我们不希望整个应用程序因为GORM中的字段名称而关闭桌子改了。
在GORM中可以做些什么来实现?另外,我们如何才能将任何此类GORM问题集中到一个地方,并将其报告给管理员或开发人员以编辑GORM类的映射?
答案 0 :(得分:0)
http://grails.org/plugin/cache
http://grails-plugins.github.io/grails-cache/docs/manual/guide/usage.html
此外,您可以使用ecahe.plugins获取大数据支持(www.bigdata.com)
hibernate {
cache.use_second_level_cache = true
cache.use_query_cache = true
cache.provider_class = 'org.hibernate.cache.EhCacheProvider'
}
让你的域名能够抓住:
class Book {
…
static mapping = { cache true }
}
class Country {
…
static mapping = { cache usage: 'read-only' }
}
class Author {
…
static hasMany = [books:Book]
static mapping = { books cache: true }
}
如果不想粉碎应用程序,通过覆盖数据库域更改的新更改,您可以查询它:
def criteria = DomainClass.createCriteria()
def results = criteria.list {
cacheable(true)
}
AND MORE ....来自Birtbeckwith博客的参考......