4

特定のアプリケーションでは、db.properties ファイルはサード パーティによって提供されます。設定に応じて、このプロパティ ファイルには db.schema プロパティが含まれる場合と含まれない場合があります。したがって、db.schema プロパティがない場合は、hibernate.default_schema プロパティに db.username を使用する必要があります。

プレースホルダー ${db.schema:db.username} は、db.schema が存在しない場合、db.username の値を取得しないため、実際の値 (つまり、dba) の代わりに 'db.schema' 値が伝播されます。

したがって、問題は、db.schema が存在しない場合に db.username のデフォルト値を伝播する方法です (db.username が常に存在すると仮定します)。

<util:properties id="specificHibernateProperties">
    <prop key="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</prop>
    <prop key="hibernate.show_sql">true</prop>
    <prop key="hibernate.hbm2ddl.auto">update</prop>
    <prop key="hibernate.default_schema">${db.schema:db.username}</prop>
</util:properties>
4

1 に答える 1

6

Spring 3 では、ネストされたプレースホルダーを使用できるはずです。だからこれを試してください:

${db.schema:${db.username}}

/rgrds

于 2012-04-24T10:03:25.907 に答える