0

나는 cassandra에 datastax java-driver를 사용하고 있습니다. 테이블의 열 중 하나에 대해 삽입/업데이트 중에 null 값을 방지하고 싶습니다. 최대 절전 모드에서Datastax Java-Driver nullable = false

/JPA 우리는 @Column 주석과 = null 허용 거짓 속성을 가지고있다. 이러한 속성은 데이터 저장소 드라이버와 함께 존재하지 않습니다.

cassandra의 datastax java 드라이버에서 Nullable = false 동작을 수행 할 수 있습니까?

카산드라 버전 : 2.1.8 카산드라 드라이버 코어 : 3.1.0

답변

1

당신은 당신이 = null 허용 거짓 열에 null 값을 삽입하려고 할 때 드라이버가 오류가 발생하는 기대한다면, JPA와 마찬가지로 이러한 기능이 없습니다. 다음과 같이 SaveNullFields, 사용됩니다 : 당신은 당신의 DB에 삽입 할 null 값을 방지하기 위해 필요한 경우

그러나, 당신은 옵션을 체크 할 수있다

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

이는 경우에 특히 유용하다 upsert 조작. 널값으로 기존 데이터를 대체하지 않으려 고합니다.

문서 : Datastax: Using the mapper

saveNullFields : 명시 적으로 쿼리에 널 (null)로 기록됩니다 지속되어야하는 인스턴스에서 null 값으로 실제 필드로 설정합니다. false로 설정하면 Null 값이있는 필드가 쓰기 쿼리에 포함되지 않습니다 (따라서 삭제 표시 방지). 지정되지 않은 경우, 디폴트 동작은 널 (null) 필드를 지속시키는 것입니다.