如何在Spring Boot中最终完全禁用hibernate

时间:2017-09-18 23:30:21

标签: java spring jpa spring-boot spring-data-jpa

在没有使用JPA / Hibernate的Spring Boot项目中(但是在类路径上有这些库不能帮助;长篇故事,但在此上下文中完全不可更改),我需要停止导致错误的任何自动配置:

java.lang.IllegalArgumentException: At least one JPA metamodel must be present!

我知道我必须明确排除JPA / Hibernate自动配置。我在@SpringBootApplication - 带注释的Java类和application.properties文件中都这样做。

@SpringBootApplication
@EnableAutoConfiguration(exclude = { DataSourceAutoConfiguration.class,
        DataSourceTransactionManagerAutoConfiguration.class, HibernateJpaAutoConfiguration.class })
@ComponentScan(basePackages = { "com" })
@EnableAsync
public class Application extends SpringBootServletInitializer {
    ...
}

spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration,org.springframework.boot.autoconfigure.jdbc.DataSourceTransactionManagerAutoConfiguration,org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration

此外,我已通过查看--debug输出验证了这些自动配置已被排除:

Exclusions:
-----------

    org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration

    org.springframework.boot.autoconfigure.jdbc.DataSourceTransactionManagerAutoConfiguration

    org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration

但是,当我没有定义JPA @Entity时,它会失败。

为什么会这样?

0 个答案:

没有答案