Spring Boot 使用Sping Boot JPA在数据库中插入多行

62o28rlo  于 2022-11-05  发布在  Spring
关注(0)|答案(2)|浏览(278)

我是spring的新手。我正在使用spring Boot 和JPA创建Rest API。我想在数据库MYSQL中添加多行。
我已经在使用保存的地方创建了控制器()方法将数据插入到数据库中。我想向数据库添加多行,但当我运行代码时,只有最后一个值被添加到数据库中。如果我尝试每次为方法创建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行最后一个值。2我想把每个值添加到数据库中。

p4rjhz4m

p4rjhz4m1#

试试这个

for(int i=0;i<listofskill.size();i++)
     {     
         UserSkillObject userskill  = new UserSkillObject ();
         userskill.setUserSkillId(newId);           
         userskill.setUser_id(userid);           
         userskill.setSkill_id(skillRepo.findByName(listofskill.get(i)).getSkill_id());
         userskillRepo.save(userskill);          
     }
9gm1akwq

9gm1akwq2#

您可以创建Userskill列表,然后一次添加所有元素,检查以下代码:

List<UserSkillObject> userskillList = new ArrayList<>();

for(int i=0;i<listofskill.size();i++){
   UserSkillObject userskill = new UserSkillObject();
   userskill.setUser_id(userid);           
   userskill.setSkill_id(skillRepo.findByName(listofskill.get(i)).getSkill_id());
   userskillList.add(userskill);
}
userskillRepo.saveAll(userskillList);

相关问题