2012-04-24 100 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