我试图从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"
,
如何启用程序以获取默认设置?
答案 0 :(得分:0)
为您的实体添加注释:
@Table(schema="myschema")
答案 1 :(得分:0)
尝试将其添加到hibernate.cfg.xml文件中
<property name="hibernate.hbm2ddl.auto">update</property>