我有一个带有Hibernate的Spring Boot项目。
- 项目没有休眠.cfg.xml文件。
- 该项目也没有 applicationContext.xml 文件。
尽管如此,一切运作良好。
但是,当我开始添加新的休眠实体时,事情就出错了。出于某种原因,只有当我将它们放入其他休眠实体的包中时,系统才会找到它们。
因此,这让我相信我确实需要其他配置来帮助自动发现机制。但是2020年的最新技术是什么?(我假设上述 xml 文件现已弃用(。
如果你使用 spring + hibernate,那么它通过@ComponenScan注释来解决。
如果纯粹的冬眠,那么我认为你需要坚持.xml
EntityManager 是在 JPA 中执行数据库交互的类。 它通过名为 persistence.xml 的配置文件进行初始化。 此文件位于 CLASSPATH 的 META-INF 文件夹中,该文件夹是 通常打包在 JAR 或 WAR 文件中。持久性.xml文件 包含:
- 命名的"持久性单元",它指定您正在使用的持久性框架,例如 Hibernate 或 EclipseLink。
- 指定如何连接到数据库以及持久性中的任何自定义的属性集合 框架
- 项目中实体类的列表
我完全忽略了 SpringBootApplication 类中存在的这些注释。
@SpringBootApplication(scanBasePackages = {"com.domain.foo.bar.*"})
@EnableJpaRepositories(basePackages ={"com.domain.foo.bar.*"})
@EntityScan(basePackages ={"com.domain.foo.bar.*"})
public class SpringBootApplication extends SpringBootServletInitializer {
}
我需要在这里添加我的包裹。