解决在Oracle数据库中使用hibernate生成表不能正确创建表的问题
2013-05-02 15:28
453 查看
最近在项目中使用hibernate的动态生成表,即将hbm2ddl.auto配置成update时,发现hibernate并没有按照默认的生成规则生成相应的数据表信息。但奇怪的是,只是部分表没有生成,而其它的表即生成成功了。重新启动项目,发现问题依旧。奇怪的是,虽然有些表没有生成,但它相关联的关联表即生成了,而且在生成时,会报一个找不到相关的引用表的错误。报的错误如下:
找了半天,最后发现一个问题,即这里需要引用的表p_menu在另一个用户空间里已经存在了,而hibernate在创建表时,在另一个用户空间中找到了这个表,故不再在当前的用户空间中创建这个表了。而在创建关联表时,由于关联的是本用户空间的表,故有此错误。
hibernate使用了jdbc默认的databasemeta来寻找相应表数据信息,当使用默认的配置时,由于某种原因(并不是每次都能发生,取决于数据库本身以及相应的驱动)。当使用当前用户连接到数据库时,使用databasemeta寻找数据库表信息时,会查询出其它用户的数据表信息(即使当前用户没有相应的权限)。
解决此问题的方法很简单,只需要在hibernate.cfg.xml中配置一句:
这样,使用databasemeta时,就会强制性地在当前用户空间中寻找数据库信息了,这样就能正确的创建出表结构了。
原文:http://www.linuxidc.com/Linux/2011-06/37914.htm
hibernate使用了jdbc默认的databasemeta来寻找相应表数据信息,当使用默认的配置时,由于某种原因(并不是每次都能发生,取决于数据库本身以及相应的驱动)。当使用当前用户连接到数据库时,使用databasemeta寻找数据库表信息时,会查询出其它用户的数据表信息(即使当前用户没有相应的权限)。
解决此问题的方法很简单,只需要在hibernate.cfg.xml中配置一句:
原文:http://www.linuxidc.com/Linux/2011-06/37914.htm
相关文章推荐
- 解决在oracle数据库中使用hibernate生成表不能正确创建表的问题
- 解决在Oracle数据库中使用hibernate生成表不能正确创建表的问题
- 解决在Oracle数据库中使用hibernate生成表不能正确创建表的有关问题
- 解决在oracle数据库中使用hibernate生成表不能正确创建表的问题
- 使用Hibernate自动生成表不能正确创建表的问题
- 使用Hibernate自动生成表不能正确创建表的问题
- hibernate生成表不能正确创建表的问题
- 解决hibernate中不能正常使用blog类型字段上传数据的问题
- Hibernate 限制查询数目,解决Limit在hql不能使用问题
- 解决Ubuntu系统使用pinyin不能打正确打字问题
- Hibernate 限制查询数目,解决Limit在hql不能使用问题
- 在使用jscalendar时候,中文或者utf8不能正确使用的问题解决
- 解决使用HIBERNATE对ORACLE数据库中数据进行排序分页错乱的问题
- 1.29使用hibernate链接oracle数据库出现问题并解决
- 解决Hibernate不能自动创建数据库表的问题
- ButterKnife的使用以及不能自动生成代码问题的解决
- flash embed fonts–动态创建文本时嵌入字体_解决_rotation和_alpha不能使用的问题
- ButterKnife的使用以及不能自动生成代码问题的解决
- 解决使用Sublime编写VBScript通过ADO连接Oracle数据库提示ADO未正确安装的问题
- 解决使用Hibernate QBC复合查询含有联合主键映射关系实体的问题