我正在尝试通过传递用户 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/