0

J'utilise datastax java-driver pour cassandra. Pour l'une des colonnes d'une table, je souhaite éviter les valeurs null pendant l'insertion/la mise à jour.Datastax Java-Driver nullable = false

En veille prolongée/JPA nous avons annulable = attribut faux avec @Column annotation. Un tel attribut n'existe pas avec le pilote de datastax

Puis-je obtenir un comportement nullable = false avec le pilote java dataastax pour cassandra?

Cassandra Version: 2.1.8 -pilote cassandra-core: 3.1.0

Répondre

1

Si vous attendez le pilote pour lancer une erreur lorsque vous essayez d'insérer une valeur nulle à un annulable = false colonne, De même que pour JPA, il n'y a pas de telle fonctionnalité.

Cependant, si vous avez juste besoin d'éviter les valeurs NULL à insérer dans votre DB, vous pouvez vérifier l'option: SaveNullFields, qui est utilisé comme suit:

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

Ceci est particulièrement utile en cas de upsert opérations, où vous ne voulez pas de valeurs nulles pour remplacer les données existantes.

Documentation: Datastax: Using the mapper

saveNullFields: si vrai, les champs avec une valeur nulle dans une instance qui doit être persisté sera écrit explicitement comme nulle dans la requête. Si la valeur est false, les champs avec une valeur nulle ne seront pas inclus dans la requête d'écriture (évitant ainsi les pierres tombales). S'il n'est pas spécifié, le comportement par défaut est de conserver les champs null.