Java 通过传递用户ID列表更新多个用户

Java 通过传递用户ID列表更新多个用户,java,spring-boot,Java,Spring Boot,我试图通过将用户ID列表作为参数传递来更新一些用户信息 我想更新正在传递用户ID的用户fo的isActive字段。 下面是我的控制器 @PutMapping @ResponseStatus(HttpStatus.OK) @RequestMapping("/UserUpdate") public ResponseEntity<?> updateUsers(List<Long> userIds) { **userService.upd

我试图通过将用户ID列表作为参数传递来更新一些用户信息 我想更新正在传递用户ID的用户fo的isActive字段。 下面是我的控制器

@PutMapping
    @ResponseStatus(HttpStatus.OK)
    @RequestMapping("/UserUpdate")
    public ResponseEntity<?> updateUsers(List<Long> userIds) {

        **userService.updateUsers(userIds);**       

         return ResponseEntity.ok(200);
    }

//为简洁起见删除了getter和setter

或者,您可以使用以下代码

@Modifying
@Query("update Users u set u.isActive = ?1, u.userName = ?2 where u.userId in ?3")
void updateUsers(Long isActive, String userName, List<Long> userId);
修改 @查询(“更新用户u设置u.isActive=?1,u.userName=?2,其中u.userId在?3中”) void updateUsers(长i活动,字符串用户名,列表用户名); 在用户存储库中添加此代码并使用此方法。

public void updateUsers(列出用户ID){
public void updateUsers(List<Long> userIds) {
   for (Long i : userIds) {
      User user = userRepository.findById(i);
         if(user != null){
            user.setIsActive(9L);
            user.setUserName("Update Test");
            // call your update method here (this is not stated in your code)
         }
    }
}
for(长i:userid){ User=userRepository.findById(i); 如果(用户!=null){ 用户设置激活(9L); user.setUserName(“更新测试”); //在此处调用更新方法(代码中没有说明) } } }
不,这是一个糟糕的方法@RajR背后有什么原因吗
@Entity
@Table(name="USERS")
public class Users {

@Id
@Column(name="USER_ID")
@GeneratedValue(strategy = GenerationType.AUTO)
private Long userId;

@Column(name="NAME")
private String userName;

@Column(name="ACTIVE")
private Long isActive;
@Modifying
@Query("update Users u set u.isActive = ?1, u.userName = ?2 where u.userId in ?3")
void updateUsers(Long isActive, String userName, List<Long> userId);
public void updateUsers(List<Long> userIds) {
   for (Long i : userIds) {
      User user = userRepository.findById(i);
         if(user != null){
            user.setIsActive(9L);
            user.setUserName("Update Test");
            // call your update method here (this is not stated in your code)
         }
    }
}