是否可以在Grails中使用只读的JNDI数据源?

时间:2010-09-07 14:48:38

标签: grails groovy jndi gorm

我需要将旧数据库的JNDI数据源添加到我的Grails(1.2.2)应用程序中。 到目前为止,资源已添加到我的Tomcat(5.5)中,DataSource.groovy包含:

development {
    dataSource {
      jndiName = "jdbc/lrc_legacy_db"
    }
}

我还创建了一些映射不同表的域对象,以便通过GORM轻松加载和处理数据库中的数据。但我现在要保证,与此DB的每个连接都是只读的。我最关心的是dbCreate - 属性以及通过GORM和GORM类自动进行数据库操作。

跳过dbCreate是否足够? 我如何确保只读取数据库,从不以任何方式操纵数据库?

2 个答案:

答案 0 :(得分:4)

您应该将validate option用于dbCreate。

编辑:文档与我第一次发布此答案时的情况有很大不同,因此链接并不能完全解释验证选项的位置。快速查找将使您到达正确的位置。

答案 1 :(得分:3)

根据Grails documentation

  

如果您的应用程序需要读取但从不修改持久化类的实例,则可以使用只读缓存

可以通过

配置域类的只读缓存

1。启用缓存

DataSource.groovy

中添加以下内容
hibernate {
    cache.use_second_level_cache=true
    cache.use_query_cache=true
    cache.provider_class='org.hibernate.cache.EhCacheProvider'
}

2。使缓存只读

对于每个域类,您需要将以下内容添加到mapping闭包中:

  static mapping = {
      cache usage:'read-only', include:'non-lazy'
  }