JPA仓库配置与实体扫描的关系

The relation between JPA respository configuration and entity scan

我定义了以下存储库:

public interface ProductRepository extends JpaRepository<Product, Long>

其中 Product class 是一个实体(用 @Entity 注释)。 为什么我的项目中还需要 @EntityScan 注释来扫描实体? 如果我不使用此注释,ProductRepository 将无法将 Product 识别为实体?

实体不会单独存在。它们作为一个整体生活并形成相互关联的实体图。

JPA 提供程序必须在启动时知道所有实体以提取所有需要的元数据,检查是否存在所有依赖项(即,如果 A 与 B 有关联,但未找到 B,则存在问题),验证命名查询等。这意味着,要创建 EntityManagerFactory,您需要提供应用程序将使用的所有实体。 EntityScan 用于在类路径中查找它们。