簡體   English   中英

Cassandra 忽略更新 null 值 spring 引導

[英]Cassandra ignores updating null value spring boot

我正在使用 spring boot 2.4.1spring-boot-starter-data-cassandra

這是存儲庫 class

@Repository
public interface UserRepository extends CassandraRepository<UserModel, String> {

}

下面是POJO

@Table("user")
public class UserModel {

    @PrimaryKeyColumn(name = "userid", type = PrimaryKeyType.PARTITIONED)
    private String userId;

    @Column("emailid")
    private String emailId;

    @Column("phonenumber")
    private String phoneNumber;

    //getters and setters
    }

下面是class調用update的方法:

@Component
public class UpdateTask {

    @Autowired
    private UserRepository userRepository;

    public void removePhoneNumber(UserModel t) {
        t.setPhoneNumber(null);
        userRepository.save(t);
    }

}

問題是我想將電話號碼字段更新為null ,因為用戶想要刪除他們的電話號碼。 但是 cassandra 忽略了 null 值集。 如何在cassandra中顯式設置一個值為null?

它可能通過 DELETE cql 命令完成 - 如果 INSERT 語句只為列指定 NULL 值或沒有為列指定任何值,則驅動程序在執行 INSERT 語句時會忽略該列你可以參考這個https:/ /issues.apache.org/jira/browse/CASSANDRA-3783

試試這個:

    public void removePhoneNumber(UserModel t) {
        UserModel userModelToUpdate = userRepository.getOne(t.userId);
        userModelToUpdate.setPhoneNumber(null);
        userRepository.save(userModelToUpdate);
    }


暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM