当前位置:  数据库>oracle

解决在Oracle数据库中使用hibernate生成表不能正确创建表的问题

    来源: 互联网  发布时间:2017-04-04

    本文导语: 最近在项目中使用hibernate的动态生成表,即将hbm2ddl.auto配置成update时,发现hibernate并没有按照默认的生成规则生成相应的数据表信息。但奇怪的是,只是部分表没有生成,而其它的表即生成成功了。重新启动项目,发现问题依旧...

最近在项目中使用hibernate的动态生成表,即将hbm2ddl.auto配置成update时,发现hibernate并没有按照默认的生成规则生成相应的数据表信息。但奇怪的是,只是部分表没有生成,而其它的表即生成成功了。重新启动项目,发现问题依旧。奇怪的是,虽然有些表没有生成,但它相关联的关联表即生成了,而且在生成时,会报一个找不到相关的引用表的错误。报的错误如下:

 

1
2
=2011-05-06 09:45:56 [org.hibernate.tool.hbm2ddl.SchemaUpdate]-[ERROR] Unsuccessful: alter table r_role_x_menu add constraint FK474DC862E1A553E2 foreign key (menu_id) references p_menu
=2011-05-06 09:45:56 [org.hibernate.tool.hbm2ddl.SchemaUpdate]-[ERROR] ORA-00942: 表或视图不存在

    找了半天,最后发现一个问题,即这里需要引用的表p_menu在另一个用户空间里已经存在了,而hibernate在创建表时,在另一个用户空间中找到了这个表,故不再在当前的用户空间中创建这个表了。而在创建关联表时,由于关联的是本用户空间的表,故有此错误。
    hibernate使用了jdbc默认的databasemeta来寻找相应表数据信息,当使用默认的配置时,由于某种原因(并不是每次都能发生,取决于数据库本身以及相应的驱动)。当使用当前用户连接到数据库时,使用databasemeta寻找数据库表信息时,会查询出其它用户的数据表信息(即使当前用户没有相应的权限)。
    解决此问题的方法很简单,只需要在hibernate.cfg.xml中配置一句:

1
当前连接用户

   这样,使用databasemeta时,就会强制性地在当前用户空间中寻找数据库信息了,这样就能正确的创建出表结构了。


    
 
 

您可能感兴趣的文章:

  • 解决hibernate+mysql写入数据库乱码
  • 解决Hibernate JPA中insert插入数据后自动执行select last_insert_id()
  • linux FC5下用程序生成的文件中,中文变成问号,怎么解决?
  • 用itext生成pdf文件,请问如何解决中文问题。
  • xmkmf,在自动生成Makefile的时候,能不能够指定用gcc编译?请大虾解决
  • qt生成的EXE文件需要它本身的DLL文件才能执行。请问怎么解决
  • 新手初到跪求大虾linux系统自动生成同名的文件与后缀~文件解决办法
  • 有这样一个关于动态生成文件并提供下载的难题,不知道大家有什么好的解决办法没有?(三根鸡毛!)
  • PHP生成UTF-8编码的CSV文件打开乱码的解决方法
  • 用Rational Rose逆向工程(java)生成类图(教程和错误解决)
  • 我想根据我的一个JCombobox的内容来确定来生成另一个JCombobox,但是画面不能更新,如何解决?
  • php生成二维码中文乱码怎么办?解决方法
  • sql server维护计划自动备份数据库作业执行失败会自动生成abc82作业的解决办法
  • 编译相同代码,gcc和mipsel-linux-gnu-gcc生成的app不同,求高手帮忙解决
  • java生成csv文件乱码的解决方法示例 java导出csv乱码
  • firefox14.0.1tar,bz2安装及安装后不能自动生成快捷方式的简单解决办法(经验分享)
  • php生成订单号的解决方案
  • SQL Server无法生成FRunCM线程的解决方法
  • 用JavaBean或Servlet能生成Excel文件用于网上打印吗,如何解决?
  • glade0.6.4生成的程序(最简单一个窗体)可是autogen.sh及make不过去,glade1.1.3能过去,可一编辑菜单就死,请教如何解决?
  • 解决在eclipse中将android项目生成apk并且给apk签名的实现方法详解
  • WinForm拖拽控件生成副本的解决方法
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • IIS打开提示MMC无法创建管理单元的解决方法
  • Linux菜瓜求救:我在用KDE打开网页浏览器时出错:无法为:text/html创建视图,如何解决?
  • 安装完jbuilder无法创建工程(在root用户下),如何解决,如何删除安装?
  • 三个月没解决的问题!!vi创建的文件里,可以输入中文,但是无法显示?什么原因?
  • Codeigniter中mkdir创建目录遇到权限问题和解决方法
  • 解析在MySQL里创建外键时ERROR 1005的解决办法
  • mysql创建函数出现1418错误的解决办法
  • 比较详细的完美解决安装sql2000时出现以前的某个程序安装已在安装计算机上创建挂起的文件操作。 原创
  • 完美解决MSSQL"以前的某个程序安装已在安装计算机上创建挂起的文件操作"
  • asp.net 由于无法创建应用程序域,因此未能执行请求错误的解决方法
  • 创建共享库文件(.so)版本冲突问题如何解决
  • 解决”文件中的备份集是由BACKUP DATABASE...FILE=创建的,无法用于此还原操作“的问题
  • 100分,江湖救急!!!!关于Applet客户端,和自己创建的服务端传送数据的问题。谁解决谁得分,只给一个人。
  • secureCRT下Linux终端汉字乱码解决方法
  • VS2005解决方案管理器中不显示解决方案节点的解决办法
  • 修改配置真正解决php文件上传大小限制问题(nginx+php)
  • 有高手能破解RAR的密码吗,至今没有找到人能解决?(先只给10分意思意思,若解决,至少给解决的人500分!说话算话!)
  • 修改配置真正解决php文件上传大小限制问题(apache+php)
  • 解决 select 挡住div的解决方法
  • window.onload事件覆盖掉body onload事件(window.onload和html body onload事件冲突)解决办法
  • 奇怪,怎么“已解决”问题只有4页(10/17日之后的),以前的已解决问题到哪里看?
  • sharepoint 2010中item.Update()和item.SystemUpdate 修改数据版本问题解决
  • 解决!解决!求助如何安装多系统!
  • andriod中UIScrollView无法正常滚动的解决方法
  • java/j2ee iis7站长之家
  • 错误:将'const x'作为'x'的'this'实参时丢弃了类型限定问题解决
  • Liunx命令tar压缩出现如下错误该怎么解决?急需解决!感谢
  • vs2010下禁用vmware的方法以及解决vmware插件导致vs2010变慢的问题
  • 求数据库解决方案===求数据库解决方案
  • windows server2008上PowerBuilder程序系统错误解决方法
  • MYSQL安装时解决要输入current root password的解决方法


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3