0

*.hbm.xml ファイルのプロパティに応じて、休止状態でクエリを選択する方法はありますか?

たとえば、MyHibernateFile.hbm.xmlに次のような 2 つのクエリがあるとします。

<sql-query name="myQuery_1">
    <return-scalar column="idTable1" type="string"/>
    <return-scalar column="descTable1" type="string"/>
    SELECT DISTINCT ID_TABLE AS IDTABLE1, DESC_TABLE AS DESCTABLE1
    FROM ${databaseSchema}.TABLE1
</sql-query>

<sql-query name="myQuery_2">
    <return-scalar column="idTable2" type="string"/>
    <return-scalar column="descTable2" type="string"/>
    SELECT DISTINCT ID_TABLE AS IDTABLE2, DESC_TABLE AS DESCTABLE2
    FROM ${databaseSchema}.TABLE2
</sql-query>

Java プロジェクトでプロパティdatabaseTypeを設定した場合、プロパティ ${databaseType} が "DB2" に等しい場合は最初のクエリを選択できますか? ${databaseType} が "ORACLE" に等しい場合は 2 番目のクエリを選択できますか? これを行うためにMyHibernateFile.hbm.xmlを変更するにはどうすればよいですか?

4

1 に答える 1

1

私はそうは思わない。ただし、DAO レイヤーのコード内でその条件を指定できます。

String queryName = null;
if (databaseType.equals("DB2")) {
   queryName= "myQuery_1";
else if (databaseType.equals("ORACLE")) {
   queryName = "myQuery_2";
}
Query q = session.createNamedQuery(queryName);
于 2013-07-17T11:29:48.973 に答える