4

在我们的特定应用程序中,db.properties 文件由 3d 方提供。根据配置,此属性文件可以包含或不包含 db.schema 属性。因此,如果没有 db.schema 属性,则 db.username 必须用于 hibernate.default_schema 属性。

如果 db.schema 不存在,占位符 ${db.schema:db.username} 不会检索 db.username 的值,因此传播“db.schema”值而不是实际(即 dba)值。

所以,问题是:如果 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 回答