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

是否可以在Grails中使用只读JNDI数据源?,grails,groovy,jndi,gorm,Grails,Groovy,Jndi,Gorm,我需要将传统数据库中的JNDI数据源添加到Grails(1.2.2)应用程序中。 到目前为止,该资源已添加到我的Tomcat(5.5)和数据源中 development { dataSource { jndiName = "jdbc/lrc_legacy_db" } } 我还创建了一些映射不同表的域对象,以便使用GORM轻松地从DB加载和处理数据。但我现在想保证,到这个数据库的每个连接实际上都是只读的。这里我最关心的是dbCreate-属性以及通过GORM和GORM

我需要将传统数据库中的JNDI数据源添加到Grails(1.2.2)应用程序中。 到目前为止,该资源已添加到我的Tomcat(5.5)和数据源中

development {
    dataSource {
      jndiName = "jdbc/lrc_legacy_db"
    }
}
我还创建了一些映射不同表的域对象,以便使用GORM轻松地从DB加载和处理数据。但我现在想保证,到这个数据库的每个连接实际上都是只读的。这里我最关心的是
dbCreate
-属性以及通过GORM和GORM类进行的自动数据库操作

跳过dbCreate就足够了吗? 如何确保只读取数据库,而从不以任何方式操作数据库?

您应该使用for dbCreate

编辑:文档与我第一次发布此答案时有点不同,因此该链接无法让您了解验证选项的解释。快速查找将使您找到正确的位置。

根据:

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

域类的只读缓存可以通过以下方式配置:

1.启用缓存 将如下内容添加到
DataSource.groovy

hibernate {
    cache.use_second_level_cache=true
    cache.use_query_cache=true
    cache.provider_class='org.hibernate.cache.EhCacheProvider'
}
2.使缓存为只读 对于每个域类,您需要将以下内容添加到
映射
闭包中:

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

哇,一个好的点和快速!因此,这将用DB验证我的退出方案,文档告诉我跳过属性也是我的一个选择;你知道这在Grails1.2.2中是否有效,因为这在1.2.2文档中从未提到过,或者我必须更新吗?我想你必须更新validate选项。该选项在1.3之前不会出现在文档中。使用更新选项也可能有意义,因为它允许您添加新列,但不会损坏任何现有数据(因此新的开发可以继续)。谢谢您,回答了我的第二个问题。我想我应该有最新版本的RTFM;)如果可以,为什么选择RTFM?(询问f****g堆栈溢出):)