为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕的地6264312 2021-09-15 10:35:27
我试图通过将用户 ID 列表作为参数来更新一些用户信息我想更新我正在传递用户 ID 的用户 fo 的 isActive 字段。下面是我的控制器@PutMapping    @ResponseStatus(HttpStatus.OK)    @RequestMapping("/UserUpdate")    public ResponseEntity<?> updateUsers(List<Long> userIds) {        **userService.updateUsers(userIds);**                return ResponseEntity.ok(200);    }updateUsers() 是我的服务中的一种方法,我必须在其中编写逻辑我尝试过类似下面的操作但它不起作用public void updateUsers(List<Long> userIds) {         List<Users> userList= userRepository.findAll();          for (Long i : userIds) {                  for ( Users user : userList)                  {                      if(userRepository.findById(i) != null)                      {                      user.setIsActive(9L);                      user.setUserName("Update Test");                      }我的 dto public class UserDto {    private     List<Users> userList;     private  String appName="Users Project";   // getters and setters removed for brevity和我的用户实体类@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;// 为简洁起见删除了 getter 和 setter
查看完整描述

2 回答

?
收到一只叮咚

TA贡献1821条经验 获得超4个赞

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


@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);

将此代码添加到您的 userRepository 中并使用该方法。


查看完整回答
反对 回复 2021-09-15
?
倚天杖

TA贡献1828条经验 获得超3个赞

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)

         }

    }

}



查看完整回答
反对 回复 2021-09-15
  • 2 回答
  • 0 关注
  • 117 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信