[英]Cassandra ignores updating null value spring boot
我正在使用 spring boot 2.4.1
和spring-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.