【问题标题】:Datastax Java-Driver nullable=falseDatastax Java-Driver nullable=false
【发布时间】:2017-06-16 10:32:43
【问题描述】:

我正在为 cassandra 使用 datastax java-driver。对于表中的一列,我希望在插入/更新期间防止 null 值。

在 hibernate/JPA 中,我们有带有 @Column 注释的 nullable = false 属性。 datastax 驱动程序不存在此类属性

我可以使用 cassandra 的 datastax java 驱动程序实现 nullable = false 行为吗?

Cassandra 版本:2.1.8 cassandra-driver-core:3.1.0

【问题讨论】:

    标签: java cassandra datastax datastax-java-driver cassandra-2.1


    【解决方案1】:

    如果您希望驱动程序在您尝试向 nullable = false 列插入空值时抛出错误,类似于 JPA,则没有这样的功能。

    但是,如果你只是需要防止空值被插入到你的数据库中,你可以勾选选项:SaveNullFields,它的使用如下:

    yourEntityMapper.setDefaultSaveOptions(Option.saveNullFields(false));
    

    这在 upsert 操作中特别有用,您不希望空值替换现有数据。

    文档:Datastax: Using the mapper

    saveNullFields:如果设置为 true,则要持久化的实例中值为 null 的字段将在查询中显式写入为 null。如果设置为 false,则具有 null 值的字段将不会包含在写入查询中(从而避免墓碑)。如果未指定,则默认行为是保留空字段。

    【讨论】:

      猜你喜欢
      • 2023-04-03
      • 2016-02-26
      • 2019-09-28
      • 2016-05-10
      • 1970-01-01
      • 2020-10-20
      • 2015-08-05
      • 2018-01-08
      • 2019-09-15
      相关资源
      最近更新 更多