`
rappy
  • 浏览: 42769 次
  • 性别: Icon_minigender_1
  • 来自: 天涯海角
文章分类
社区版块
存档分类
最新评论

oc4j和hibernate结合的问题

阅读更多
web服务器:oc4j,数据库:oracle 10g
spring+hibernate架构+orabpel

部署应用,发现如下错误:
Operation failed with error: Error creating bean with name 'initMenuItemData' defined in ServletContext resource [/WEB-INF/classes/applicationContext-initTestDatas.xml]: Invocation of init method failed; nested exception is org.springframework.dao.InvalidDataAccessResourceUsageException: could not execute query; nested exception is org.hibernate.exception.SQLGrammarException: could not execute query 


打开hibernate显示sql的开关,经排查,发现是有些表已存在,不能被再次创建,在系统初始化插入数据时出错.

但该数据库是新创建的,何来之表!?

oc4j的文档有专门针对hibernate的一个解决办法:替换toplink下的antlr包,但部署前已替换.

将数据库改成sql server,一切正常,因此问题肯定是出在oracle数据库,或者应用中与数据库配置相关的地方.

查看了下hibernate.properties文件,发现配的用户是dba级别的,可以访问多个scheme.
正好有一个不同版本的该应用引用了另一个scheme,于是乎导致部署该应用时发现了另一个scheme的表,于是乎就出现了上面的错误.

问题查出后,修改了该配置文件,把用户改成该scheme专有的之后,问题解决.

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics