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

时间:2019-05-06 10:22:45

标签: java database http service repository

我用Angular,SpringBoot和MySQL数据库构建了一个应用程序。 它使用CrudRepository,我听不懂(一切正常。)。 控制器/存储库如何知道从哪个表获取数据?我的意思是,我不指定表名。 有人可以解释一下这是怎么回事吗?

3 个答案:

答案 0 :(得分:0)

扩展CrudRepository时,将定义其通用类型。在这里,您可以知道存储库将从哪个Entity类中获取数据。 Entity中的JPA类用于表示Tables。这就是从哪里获取数据的方式。例如:

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

在上面的代码中,我将通用类型指定为User,另外User是我的Entity类,它代表users中的database表。因此,此存储库将处理users表。

答案 1 :(得分:0)

在Spring Boot数据JPA应用程序中,任何模型都使用@Entity@Table(name = "User")进行注释。如果是前者,则默认表名称与“实体名称”相同。

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

答案 2 :(得分:0)

我发现以下解释很有用,因为它遍历了@Entity@Table的所有可能组合,并列出了相应的查询。
https://walkingtechie.blogspot.com/2019/06/difference-between-entity-and-table.html

相关问题