我在配置文件中配置oracle的schema如下:
<prop key="hibernate.default_schema">${db.oracle.default_schema}</prop>
在执行时还是报sql错误:表或视图不存在但是,能确定表和视图是存在的,而且hibernate.default_schema也设置成功这是什么问题呢?该怎么解决?

解决方案 »

  1.   

    都报表或视图不存在了,那最可能的是你用 户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="用户名"
      

  2.   

    跟代码在hibernate属性中有这个设置,并且和我设置的一样,所以我认为是设置成功了目前情况:使用hql就能成功执行,使用sql就报所说的错误
      

  3.   

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