慕的地6264312
2021-09-15 10:35:27
我試圖通過將用戶 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條經驗 獲得超5個贊
或者,您可以使用以下代碼
@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
提交
取消
