Spring Data JPA 具有多个 orm.xml 文件

hen*_*nry 4 orm spring nativequery spring-data-jpa spring-boot

基于我的上一篇文章:Spring JPA long SQL String for NativeQuery

我设法找到一个“地方”来编写干净的 SQL,以便我可以直接将其复制并粘贴到数据库软件中以加快测试速度。

但另一个问题来了,如果我想隔离我的 orm.xml 文件,比如:

  1. 学生_orm.xml
  2. 教师_orm.xml

我尝试按上面所示重命名文件,但它说在启动过程中找不到文件中的方法。知道如何让项目理解多个 orm.xml 文件吗?

小智 5

也许您已经找到了解决方案,但仍将我的解决方案发布在这里,以防其他人仍在为此苦苦挣扎。

在使用 Spring JPA 和 Spring Boot 时,您可能熟悉我们配置数据源的方式。因此,在配置实体管理器工厂时,请将映射资源设置为您拥有的(一组)ORM 文件,如下所示。这将覆盖 Spring Boot 为您所做的默认“META-INF/orm.xml”。

@Bean
public LocalContainerEntityManagerFactoryBean entityManagerFactory() {
    LocalContainerEntityManagerFactoryBean factory = new LocalContainerEntityManagerFactoryBean();

    // ..
    // other configurations removed for brevity
    // ..

    factory.setMappingResources("META-INF/orm/student_orm.xml", "META-INF/orm/teacher_orm.xml");

    return factory;
}
Run Code Online (Sandbox Code Playgroud)