2012-04-24 93 views
4

在我们的具体应用程序中,db.properties文件由3d方提供。根据配置,此属性文件可能包含db.schema属性或不包含。因此,如果没有db.schema属性,那么db.username必须用于hibernate.default_schema属性。春季默认占位符值xml

如果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> 

回答

6

在Spring 3中,应该可以使用嵌套占位符。 所以请尝试这个办法:

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

/rgrds

+0

我是持怀疑态度,但我想这和它的实际工作。太好了! – sourcedelica 2012-04-25 14:35:05