如何在Hibernate XML配置文件中使用属性表示法

时间:2010-08-12 11:22:51

标签: java hibernate file configuration

这仍是一个悬而未决的问题。希望有一天我能得到答案。感谢所有回复的人。

我的问题很简单。如何在Hibernate XML配置文件中使用$ {catalina.home}或$ {catalina.base}属性?

这是我的示例配置文件:

<hibernate-configuration>
<session-factory>
    <property name="dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property>
    <property name="hbm2ddl.auto">update</property>
    <property name="show_sql">false</property>
    <property name="cache.use_second_level_cache">false</property>

    <mapping jar="/opt/tomcat/apache-tomcat-5.5.29/webapps/MyApp/WEB-INF/lib/MyHibernateMaps.jar" />
</session-factory>

我当前的配置文件没问题。但我想至少抽象出tomcat的位置。而不是使用它:

<mapping jar="/opt/tomcat/apache-tomcat-5.5.29/webapps/MyApp/WEB-INF/lib/MyHibernateMaps.jar" />

我想将其转换为:

<mapping jar="${catalina.base}/webapps/MyApp/WEB-INF/lib/MyHibernateMaps.jar" />

我尝试直接这样做,但我得到一个错误,即jar文件丢失或无法找到。我用谷歌搜索但无济于事。

我之所以需要这样的设置,是因为我在三台机器中部署了我的应用程序。一个是生产。另一个是发展。最后一个是localhost(在家里)。这三台机器在三个不同的位置安装了tomcat。

因此,每次部署应用程序时,我都必须修改 /opt/tomcat/apache-tomcat-5.5.29 / 行以匹配计算机上的tomcat位置。

有什么想法吗?

另外,使用catalina.home或catalina.base是否优先?我只在localhost上使用一个tomcat。但在开发和生产方面,我们有两只雄猫(当然在两个不同的位置)。

由于

顺便说一句,这个Hibernate配置文件在Spring XML配置文件中使用:

<bean id="appSessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
     <property name="dataSource">
    <ref local="appDataSource"/>
     </property>
     <property name="configLocation">
            <value>${hibernate.config}</value>
     </property>
</bean>

1 个答案:

答案 0 :(得分:1)

你不需要这个。假设JAR位于应用程序类路径上(这是WAR的/WEB-INF/lib目录下的JAR的情况),只需使用:

<mapping jar="myapp.jar" />