我正在尝试通过传递用户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
还有我的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;
//为简便起见,删除了吸气剂和吸气剂
答案 0 :(得分:1)
或者,您可以使用以下代码
@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中并使用该方法。
答案 1 :(得分:0)
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)
}
}
}