Leo*_*Leo 5 oracle grails grails3
我的 Grails 3.3.2 应用程序当前连接到 Oracle 11g 数据库,其中一些数据表是 dblink 的同义词,指向另一个数据库中的物理表。当 Grails 应用程序启动时,抛出以下 hibernate 异常:
org.hibernate.tool.schema.spi.SchemaManagementException:架构验证:表 [tbl_with_synonyms] 中缺少列 [col_in_tbl_with_synonyms]
很多文章都说includeSynonyms
必须设置connection属性true
才能让Oracle返回元数据,这样hibernate才能找到列定义。所以我尝试以includeSynonyms=true
不同的方式设置,但仍然无法正常工作并且总是出现上述错误,无论我使用的是 ojdbc6 还是 ojbc8 驱动程序。
我知道我可以设置dbCreate: none
绕过验证作为解决方法,但是通过验证可以更早地找出映射问题,这应该是一个好主意。
以下是我的配置供参考,有什么想法吗?谢谢!
构建.gradle
bootRun {
jvmArgs = ['-Doracle.jdbc.includeSynonyms=true']
}
应用程序.yml
spring:
...
datasource:
dbProperties:
includeSynonyms: true
synonyms: true
connectionProperties:
includeSynonyms: true
synonyms: true
connection-properties:
includeSynonyms: true
synonyms: true
hibernate:
...
synonyms: true
includeSynonyms: true
dataSources:
dataSource:
driverClassName: oracle.jdbc.OracleDriver
dialect: org.hibernate.dialect.Oracle10gDialect
dbCreate: validate
dbProperties:
includeSynonyms: true
synonyms: true
connectionProperties:
includeSynonyms: true
synonyms: true
connection-properties:
includeSynonyms: true
synonyms: true
...
properties:
...
includeSynonyms: true
synonyms: true
dbProperties:
includeSynonyms: true
synonyms: true
connectionProperties:
includeSynonyms: true
synonyms: true
connection-properties:
includeSynonyms: true
synonyms: true
归档时间: |
|
查看次数: |
730 次 |
最近记录: |