【发布时间】:2019-12-14 00:45:28
【问题描述】:
我是春天的新手。我正在使用带有 JPA 的 Spring Boot 创建 Rest API。我想在数据库 MYSQL 中添加多行。
我已经创建了控制器,我在其中使用存储库中的 save() 方法将数据插入数据库。我想向数据库添加多行,但是当我运行代码时,只有最后一个值被添加到数据库中。如果我每次都尝试为方法创建 Userskill 对象,它可以正常工作,但每次都创建新对象是不可行的。这是控制器代码的一部分。在这里,Userskill 是我要插入数据的模型和表。
for(int i=0;i<listofskill.size();i++)
{
userskill.setUser_id(userid);
userskill.setSkill_id(skillRepo.findByName(listofskill.get(i)).getSkill_id());
userskillRepo.save(userskill);
}
此代码仅添加最后一个值的 1 行。我想将每个值添加到数据库中。
【问题讨论】:
-
您需要创建一个新对象。该对象代表数据库中的行,一旦保存,它就由 JPA 管理,所有
set方法都会更新托管实体。每行都需要自己的UsersSkill实例。 -
但是如果我需要添加 50 行呢?创建 50 个 Userskill 对象是不可行的。
-
还有什么办法吗?
-
如上所述,只需创建对象。为什么不可行,世界各地的人们都在这样做。您正在使用 JPA,这意味着您必须以 JPA 方式工作……如果您不希望这样做,请不要使用 JPA。
标签: mysql spring rest spring-boot jpa