CrudRepository如何知道获取哪个表的数据?

3

我使用Angular、SpringBoot和MySQL数据库构建了一个应用程序。它使用CrudRepository,虽然一切都正常工作,但我仍不理解它的工作原理。控制器/存储库如何知道从哪个表中获取数据?我的意思是,我没有指定表名。有人能解释一下这是如何工作的吗?

3个回答

4

当您扩展CrudRepository时,需要定义其泛型类型。在这里,您告诉存储库将从哪个Entity类中获取数据。而在JPA中,Entity类用于表示Tables。因此,它就知道从哪里获取数据。例如:

public interface UserRepository extends CrudRepository<User, Long>  {
}

在上面的代码中,我指定了通用类型为User。同时User是我的实体类,它代表了我数据库中的users表。因此,这个Repository将处理users表。

3

在Spring Boot Data JPA应用程序中,任何模型都可以使用@Entity@Table(name = "User")进行注释。 对于前者,默认表名与实体名称相同。

此外,当您创建任何存储库时,例如:public interface UserRepository extends CrudRepository<User,Long>,默认实体即用户将被引用以以通用方式执行所有操作。


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接