休眠实体发现仅在同一文件夹中工作



我有一个带有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 {
}

我需要在这里添加我的包裹。

最新更新