Oracle   发布时间:2022-05-17  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Grails – 多个数据源大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
首先,让我开始,我已经看了很多网站关于在Grails上配置多个数据源的“正确”方法,其中每一个(使用Grails 2.0及更高版本)指向 docs ,但是在做了文档说我得到的之后这个错误: @H_874_1@Error 2014-03-29 15:48:29,219 [localhost-startStop-1] ERROR context.GrailsContextLoader - Error initializing the application: Error creaTing bean with name 'transactionManager_lookup': CAnnot resolve reference to bean 'sessionFactory_lookup' while setTing bean property 'sessionFactory'; nested exception is org.springframework.beans.factory.beanCreationException: Error creaTing bean with name 'sessionFactory_lookup': CAnnot resolve reference to bean 'transactionManager' while setTing bean property 'transactionManager'; nested exception is org.springframework.beans.factory.beanCreationException: Error creaTing bean with name 'transactionManager': CAnnot resolve reference to bean '$priMarytransactionManager' while setTing constructor argument; nested exception is org.springframework.beans.factory.beanCreationException: Error creaTing bean with name '$priMarytransactionManager': CAnnot resolve reference to bean 'sessionFactory' while setTing bean property 'sessionFactory'; nested exception is org.springframework.beans.factory.beanCreationException: Error creaTing bean with name 'sessionFactory': CAnnot resolve reference to bean 'transactionManager' while setTing bean property 'transactionManager'; nested exception is org.springframework.beans.factory.beanCurrentlyInCreationException: Error creaTing bean with name 'transactionManager': @R_874_10613@ested bean is currently in creation: Is there an unresolvable circular reference? message: Error creaTing bean with name 'transactionManager_lookup': CAnnot resolve reference to bean 'sessionFactory_lookup' while setTing bean property 'sessionFactory'; nested exception is org.springframework.beans.factory.beanCreationException: Error creaTing bean with name 'sessionFactory_lookup': CAnnot resolve reference to bean 'transactionManager' while setTing bean property 'transactionManager'; nested exception is org.springframework.beans.factory.beanCreationException: Error creaTing bean with name 'transactionManager': CAnnot resolve reference to bean '$priMarytransactionManager' while setTing constructor argument; nested exception is org.springframework.beans.factory.beanCreationException: Error creaTing bean with name '$priMarytransactionManager': CAnnot resolve reference to bean 'sessionFactory' while setTing bean property 'sessionFactory'; nested exception is org.springframework.beans.factory.beanCreationException: Error creaTing bean with name 'sessionFactory': CAnnot resolve reference to bean 'transactionManager' while setTing bean property 'transactionManager'; nested exception is org.springframework.beans.factory.beanCurrentlyInCreationException: Error creaTing bean with name 'transactionManager': @R_874_10613@ested bean is currently in creation: Is there an unresolvable circular reference?

我觉得最有趣的是,如果我指定:

@H_874_1@data@R_696_9016@e_lookup

我会得到:

@H_874_1@Error initializing the application: Error creaTing bean with name 'transactionManager_lookup'

如果我将其更改为:

@H_874_1@data@R_696_9016@e_MysqLdb

我明白了:

@H_874_1@Error initializing the application: Error creaTing bean with name 'transactionManager_MysqLdb'

如果我没有指定第二个数据源,一切正常.

我的代码:

@H_874_1@data@R_696_9016@e { logsql = true pooled = true dialect = org.hibernate.dialect.MysqLInnoDBDialect driverClassname = 'com.Mysql.jdbc.Driver' username = 'myuser' password = 'mypass' url = 'jdbc:MysqL://localhost/mydatabase' dbCreate = 'update' } data@R_696_9016@e_MysqL { dialect = org.hibernate.dialect.MysqLInnoDBDialect driverClassname = 'com.Mysql.jdbc.Driver' username = 'myuser' password = 'mypass' url = 'jdbc:MysqL://localhost/mydatabase' dbCreate = 'update' } data@R_696_9016@e_Oracle { dialect = org.hibernate.dialect.Oracle10gDialect driverClassname = 'Oracle.jdbc.driver.OracleDriver' username = 'myuser' password = 'mypass' url = 'jdbc:Oracle:thin:@localhost:1521:mydatabase' dbCreate = 'update' }

我在这做错了什么? (如前所述,如果我消除了两个辅助data@R_696_9016@es(data@R_696_9016@e_MysqL和data@R_696_9016@e_OraclE),一切正常).

提前致谢.
Dev:Ubuntu – Grails 2.3.7 – MysqL – Oracle 11g.

好的,我想出来了.

在Grails 2.3.7发行说明中,它说要升级你的hibernate版本.我做不到.

http://grails.org/2.3.7+Release+Notes

runtime’:hibernate:3.6.10.10′

然后,在我这样做后,我停止了这个错误并得到了另一个错误

java.lang.classnotFoundException:null
在java.net.urlclassloader $1.run(urlclassloader.java:366)
在java.net.urlclassloader $1.run(urlclassloader.java:355)
在java.net.urlclassloader.findClass(urlclassloader.java:354)
at java.lang.classLoader.loadClass(ClassLoader.java:425)
at …. MigrationUtils.createInstance(MigrationUtils.groovy:220)
at …. MigrationUtils.getDatabase(MigrationUtils.groovy:57)
at …. MigrationUtils.getDatabase(MigrationUtils.groovy:116)
在DbmGenerateGormChangelog $_… doCall(DbmGenerateGormChangelog:52)
at …. MigrationUtils.executeInSession(MigrationUtils.groovy:132)
在DbmGenerateGormChangelog $_run_closure2.doCall(DbmGenerateGormChangelog:51)
在DbmGenerateGormChangelog $_run_closure1.doCall(DbmGenerateGormChangelog:33)

我以前从未必须为Oracle指定hibernate方言,但显然在最新版本的迁移插件(当前为1.3.8)中,你必须这样做.

@H_874_1@dialect = "org.hibernate.dialect.Oracle10gDialect"

我已经指定了MysqL的方言,所以我不知道如果删除它是否会产生相同的错误.

大佬总结

以上是大佬教程为你收集整理的Grails – 多个数据源全部内容,希望文章能够帮你解决Grails – 多个数据源所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签:首先