如何使用Spring Boot但使用Hibernate XML映射文件而不是注释

时间:2018-09-24 09:06:31

标签: spring-boot

我正在使用Spring Boot 2.0和我的实体上的注释。我想删除注释并切换到使用XML配置文件将域模型映射到数据库,以便从域模型中删除任何技术实现的迹象。

问题是,我找不到如何配置spring boot以使用休眠映射文件。

我很高兴Spring可以设置数据库连接,但是如果可能的话,我想通过XML管理映射。

4 个答案:

答案 0 :(得分:1)

偶然地,我创建了文件夹resources / hibernate,然后创建了一个映射文件user.hbm.xml,然后从实体类中删除了注释,Spring似乎自动选择了Hibernate XML文件。 / p>

答案 1 :(得分:0)

也许您可以使用LocalSessionFactoryBean来设置映射位置。 (请参阅:Alert(AlertType,String,ButtonType...)

也许是这样的:

@Bean
public LocalSessionFactoryBean sessionFactory() {
    LocalSessionFactoryBean sessionFactory = new LocalSessionFactoryBean();
    sessionFactory.setMappingResources(...locations of your xml);
    //Other configutation omitted
    return sessionFactory;
}

可以工作。

注意:我尚未测试解决方案。

答案 2 :(得分:0)

无需配置,只需将* .hbm.xml文件放在src / main / resources文件夹下,Spring Boot可以自动扫描它们。

在测试中,我已将Item.hbm.xml放在/ src / main / resources / hibnerate文件夹下,并且我可以成功地从数据库加载该项目

答案 3 :(得分:0)

如果您使用 LocalSessionFactoryBean 创建 sessionfactory bean,则创建以下属性并将所有 *.hbm.xml 文件保存在资源文件夹中或类路径应该可以解决问题。

<property name="mappingResources">
  <list>
    <value>MyMapping.hbm.xml</value>
  </list>
</property>

More - SessionFactory setup in a Spring container