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

标签 java spring-boot

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

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

我的数据传输

 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;

//为简洁起见,删除了 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);

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

关于java - 通过传递用户 ID 列表来更新多个用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52282603/

相关文章:

java - 从 Amazon Cognito 中的 AdminInitiateAuthResult 中提取用户名

java - 在循环中使用 "continue"是反模式吗?

java - 如何返回 Spring Boot 中模型中不存在的字段?

java - spring boot编译找不到符号componentscan

spring - spring-cloud-starter-ribbon 缺少 HTTP 客户端依赖项

java - 为什么要分解不包括 spring-boot-starter-logging 的日志文件?

java - Java Servlet 中的数据库连接池

java.lang.IllegalArgumentException : Not supported: indent-number 异常

java - 通过 docker-compose 将 JAVA_OPTS 传递给 spring boot 应用程序

java - wsimport 生成的故障代码