一尘不染

在jar中嵌入hibernate hbm.xml映射

hibernate

是否可以将hbm.xml的hibernate映射嵌入到jar中,并避免在applicationContext.xml中手动引用,例如

  <bean id="sessionFactory"
    class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
    <property name="dataSource">
      <ref bean="dataSource" />
    </property>
    <property name="hibernateProperties">
      <props>
        <prop key="hibernate.dialect">
          org.hibernate.dialect.MySQLDialect
        </prop>
      </props>
    </property>
    <property name="mappingResources">
      <list>
        <value>
          com/…/domain/Question.hbm.xml

并指向一个jar/等?
Nhibernate可以选择一个程序集,从该程序集拾取hbm。
注释不是一种选择

编辑: 编辑:我的意图是删除对hbm的手动引用,并指向hibernate可以从中获取的通用位置

  <list>
    <value>
      com/.../Question.hbm.xml
    </value>
    <value>com/.../Users.hbm.xml</value>
    <value>
      com/.../Answers.hbm.xml
    </value>

阅读 239

收藏
2020-06-20

共1个答案

一尘不染

还要澄清一下:您正在专门一起谈论Spring和Hibernate,因为要显示的配置是Spring的Hibernate配置。Spring
LocalSessionFactoryBean接受多种不同的方法来设置Hibernate映射文件的位置。你只显示了使用mappingResources的参数,但也有mappingLocationsmappingJarLocationsmappingDirectoryLocations

我认为对于您的示例,您可能想要使用mappingDirectoryLocations并将其仅指向JAR中的特定目录,例如:

<property name="mappingDirectoryLocations">
      <list>
        <value>
          com/…/domain/
        </value>
      </list>
</property>
2020-06-20