我定义了以下存储库:
public interface ProductRepository extends JpaRepository<Product, Long>
其中Product类是一个实体(用@entity注释)。为什么我的项目中还需要@EntityScan注释来扫描实体?如果我不使用此注释,ProductRepository是否不会将产品识别为实体?
实体并不是单独存在的。它们作为一个整体生活,并形成一个相互连接的实体图。
JPA提供程序必须在启动时知道所有实体,以提取所有所需的元数据,检查是否存在所有依赖项(即,如果A与B有关联,但没有找到B,则存在问题),验证命名查询,等等。这意味着,要创建EntityManagerFactory,需要提供应用程序将使用的所有实体。EntityScan用于在类路径中查找它们。