特定のアプリケーションでは、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>