2

Oracle データベースの 2 つのテーブルからデータを取得しようとしています。MyEntityアノテーションを使用するクラスを定義します(クラスを定義するときに使用@Entityせずにのみ使用します@Table)。このエンティティの休止状態は、次のコードのようになります。

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"

プログラムがデフォルト設定を取得できるようにするにはどうすればよいですか?

4

2 に答える 2

0

これを試してhibernate.cfg.xmlファイルに追加してください

<property name="hibernate.hbm2ddl.auto">update</property> 
于 2012-09-25T12:39:25.333 に答える
0

エンティティに注釈を追加します。

@Table(schema="myschema")
于 2012-09-25T11:07:27.667 に答える