我需要将旧数据库的JNDI数据源添加到我的Grails(1.2.2)应用程序中。
到目前为止,资源已添加到我的Tomcat(5.5)中,DataSource.groovy
包含:
development {
dataSource {
jndiName = "jdbc/lrc_legacy_db"
}
}
我还创建了一些映射不同表的域对象,以便通过GORM轻松加载和处理数据库中的数据。但我现在要保证,与此DB的每个连接都是只读的。我最关心的是dbCreate
- 属性以及通过GORM和GORM类自动进行数据库操作。
跳过dbCreate是否足够? 我如何确保只读取数据库,从不以任何方式操纵数据库?
答案 0 :(得分:4)
您应该将validate option用于dbCreate。
编辑:文档与我第一次发布此答案时的情况有很大不同,因此链接并不能完全解释验证选项的位置。快速查找将使您到达正确的位置。
答案 1 :(得分:3)
如果您的应用程序需要读取但从不修改持久化类的实例,则可以使用只读缓存
可以通过
配置域类的只读缓存在DataSource.groovy
hibernate {
cache.use_second_level_cache=true
cache.use_query_cache=true
cache.provider_class='org.hibernate.cache.EhCacheProvider'
}
对于每个域类,您需要将以下内容添加到mapping
闭包中:
static mapping = {
cache usage:'read-only', include:'non-lazy'
}