JPA存储库配置与实体扫描之间的关系

时间:2016-06-12 22:08:26

标签: jpa repository spring-data-jpa

我定义了以下存储库:

public interface ProductRepository extends JpaRepository<Product, Long>

产品类是实体(使用 @Entity 注释)。 为什么我还需要在项目中使用 @EntityScan 注释来扫描实体? 如果我不使用此注释, ProductRepository 将无法将产品识别为实体?

1 个答案:

答案 0 :(得分:1)

实体不仅仅是自己存在。它们作为一个整体存在,并形成互连实体的图形。

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