Làm sao để update theo cột trong spring boot api

Em đang viết api cho app… viết phần cật nhật thông tin cá nhân… khi e cho nó cập nhật riêng ngày sinh thì các thuộc tính còn lại sẽ bị null hết… tương tự khi cập nhật riêng name thì các cột còn lại sẽ bị null hết…
Ai chỉ giáo e với

Ý bạn là bạn muốn update 1 attribute, những attribute khác sẽ set về null hay việc bị set null là bug?
Nếu bạn dùng Spring Data Repository để access với db thì bạn có thể làm thế này ở tầng DAO / Service

public void updateAccount(Long accountId, AccountDTO accountDTO) {
    // Lấy account có id từ request
    Optional<Account> optionalAccount = accountRepository.findById(accountId);

    // Kiểm tra account có tồn tại không
    if(optionalAccount.isPresent()) {
        Account accountInDb = optionalAccount.get();
        
        // Update Information - ở đây update name
        accountInDb.setName(accountDTO.getName());
        accountInDb.setAge(null);
        accountInDb.setEmail(null);
        accountInDb.setGender(null);
        accountInDb.setAddress(null);
        accountInDb.setPhone(null);

        // Lưu entity mới update vào db
        accountRepository.save(accountInDb);
    } else {
        LOG.error("Account with id = {} not found!", accountId);
    }
}
1 Like

Khi e update ngày sinh thì các column khác dữ liệu trở về null hết… e muốn chỉ update column ngày sinh thôi những cột khác giữ đuợc dữ liệu

Bạn hỏi về một vấn đề xử lý cụ thể mà ko post code lên, nói chung chung vậy sao anh em support được :joy:

Bạn thử dùng @PutMapping cho API đó xem.

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?