日期:2014-05-17  浏览次数:20725 次

求助:在hibernate中设置Oracle的schema无效
我在配置文件中配置oracle的schema如下:
<prop key="hibernate.default_schema">${db.oracle.default_schema}</prop>
在执行时还是报sql错误:表或视图不存在

但是,能确定表和视图是存在的,而且hibernate.default_schema也设置成功

这是什么问题呢?该怎么解决?

------解决方案--------------------
都报表或视图不存在了,那最可能的是你用 户A去连接数据库,表是用户B的,以A用户去查询B必须"from B.表"

"<prop key="hibernate.default_schema">${db.oracle.default_schema}</prop>
而且hibernate.default_schema也设置成功"

什么叫设置成功了?设置成功的标识是Hibernate最后给你生成的sql语句里出现了"B.表"的字样
${db.oracle.default_schema}不是从你的properties文件里取值吗?你看见它取出来了?不报错就叫成功了?

自己去检查最后生成的SQL语句,如果表前面没有"用户名.",就自己去hbm文件里加上schema="用户名"
------解决方案--------------------
hibernate 用 sql就老老实实自己写用户名.表名 

所有的hibernate属性只是解析hql时候出现,sql都是原生态调用,你写什么样它就执行什么,设什么hibernate属性