- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用 GORM 来存储数据库中的系统元数据。然而,预计不会直接使用它,而是通过缓存使用。该系统的固有工作完全依赖于元数据。因此,这里期望的是,即使作为最终源的 GORM 表中发生架构更改,数据驻留在缓存系统中也应该可以正常工作。仅当预期数据不存在时,才应查询数据库表,最终导致问题。我知道生产级系统可能不会出现这种情况,但我的项目目前正处于开发阶段,涉及多人,其中更改在其他人不知情的情况下同时发生,我们不希望整个应用程序仅仅因为 GORM 中的字段名称而崩溃表已更改。
在 GORM 中可以做什么来实现这一目标?另外,我们如何才能将任何此类 GORM 问题捕获到一个位置并将其报告给管理员或开发人员以便编辑 GORM 类的映射?
最佳答案
哇!好主意!对于这样的想法,grails catch 插件就派上用场了!你可以捕获域对象
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)
}
还有更多....来自 Birtbeck 博客的引用...
关于mysql - 如何在 GORM 表架构更改后让系统正常工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19706354/
我是一名优秀的程序员,十分优秀!