我试图通过将用户 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 中并使用该方法。
倚天杖
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)
}
}
}
添加回答
举报
0/150
提交
取消