在生产中,我们使用JBoss和JNDI连接数据库。在JNDI配置中,我们有类似的东西:
<new-connection-sql>ALTER SESSION SET CURRENT_SCHEMA=XXX</new-connection-sql>
对于开发,我使用硬编码的DataSources参数将run-app
与默认的Tomcat容器(Grails 1.3.2)一起使用。到目前为止,使用我的开发配置中的default_schema
参数来估计上述alter session语句就足够了。但由于使用了一些本机Sql语句,这已经不够了。我不想更改SQL以满足我的开发设置(例如,通过在运行时提取default_schema
值)。我看到两个选择:
new-connection-sql
参数。new-connection-sql
参数。任何人都可以帮我找出解决这个问题的最佳方法吗?谢谢!
修改
以下是我正在使用的本机Sql代码(我们的目标是使用触发器更新DATE_CREATE列的旧数据库,并且必须在保存时以这种方式检索它):
def getCreationDate() {
if (!creationDate) {
def sql = new Sql(dataSource)
sql.query("select DATE_CREATED from some_view where id=?", [id]) {ResultSet rs ->
rs.next()
creationDate = rs.getTimestamp("DATE_CREATED")
}
}
return creationDate
}