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