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

标签 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 文件丢失或找不到。我用 Google 搜索过,但没有结果。

我需要进行这样的设置的原因是因为我将应用程序部署在三台计算机上。一是用于生产。另一种是为了发展。最后一个是本地主机(在家里)。这三台机器在三个不同的位置安装了tomcat。

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

有什么想法吗?

另外,使用catalina.home还是catalina.base更好?我只在本地主机上使用一台 tomcat。但在开发和生产方面,我们有两个 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>

最佳答案

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

<mapping jar="myapp.jar" />

关于java - 如何在 Hibernate XML 配置文件中使用属性表示法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3467073/

相关文章:

java - 无法使用 Selenium(java) 从网站抓取错误消息并在 Eclipse 控制台中打印

java - 修复了 3D 相机在它面对的方向上移动的问题?

java - 如何更改我的 fragment 中的文件 XML 属性

hibernate - Grails-是级联事务

java - Spring Data JPA - 两个 IN 子句和一个 OR - QuerySyntaxException

java - 如何更新 OSGI 中的接口(interface)?

java - Hibernate 中的一对一映射?

java - File.createNewFile() 给出 java.io.IOException : Permission denied

java - Scanner(new File) 和 Scanner(new FileInputStream) 有什么区别?

linux - 将内容文件过滤到表格