Обновите несколько пользователей, передав список идентификаторов пользователей - PullRequest
0 голосов
/ 11 сентября 2018

Я пытаюсь обновить некоторую информацию о пользователе, передав параметр List-Id в качестве параметра я хочу обновить поле isActive пользователя fo, которому я передаю идентификаторы пользователя. Ниже мой контроллер

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

my dto

 public class UserDto {
    private     List<Users> userList;
     private  String appName="Users Project";
   // getters and setters removed for brevity

И мой класс сущности Users

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

// для краткости удалены геттеры и сеттеры

Ответы [ 2 ]

0 голосов
/ 12 сентября 2018
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)
         }
    }
}
0 голосов
/ 11 сентября 2018

В качестве альтернативы вы можете использовать следующий код

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

Добавьте этот код в свой репозиторий user и используйте метод.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...