无法获取Hibernate默认架构

时间:2012-09-25 10:42:45

标签: spring hibernate

我试图从oracle数据库的两个表中获取一些数据。 我定义了使用注释的MyEntity类(在定义类时仅使用@Entity而不使用@Table)。这个实体的hibernate看起来像下面的代码:

public List<MyEntity> getAll() {
    return oracleSessionFactory.getCurrentSession()
           .createSQLQuery("SELECT a.column1, a.column2, b.column1" +
                    "FROM A_table a JOIN B_table b " +
                    "ON a.column1 = b.column1")
            .addEntity(MyEntity.class).list();
}

我在持久性文件的数据源中设置了hibernate。default_property的默认架构属性。但是,这不适用于这样的错误:

java.sql.SQLException: ORA-00942: table or view does not exist

当我只是将我的硬代码添加到sql查询中时,如下所示,程序运行正常。

"SELECT a.column1, a.column2, b.column1 FROM myschema.A_table a JOIN myschema.B_table b ON a.column1 = b.column1"

如何启用程序以获取默认设置?

2 个答案:

答案 0 :(得分:0)

为您的实体添加注释:

@Table(schema="myschema")

答案 1 :(得分:0)

尝试将其添加到hibernate.cfg.xml文件中

<property name="hibernate.hbm2ddl.auto">update</property>