у меня есть ряд кассандры
slug | logo | name | priority
------+------+------+----------
test | null | Test | null
Я использую java-драйвер datastax для запроса этого результата, а затем сопоставляю Row
с классом case Scala:
Brand(r.getString("slug"), r.getString("name"), Option( r.getInt("priority") ) ,Option( r.getString("logo")))
Результат должен был быть:
Brand(test,Test,None,None)
Но я получаю это:
Brand(test,Test,Some(0),None)
Оба поля priority
и logo
не были установлены при вставке. Если я просто напечатаю строку, я получу правильный результат:
[Row[test, NULL, Test, NULL]]
Любые идеи ?
Int
в scala - этоAnyVal
, а неAnyRef
, поэтому он не может бытьnull
(например,int
в java), вот почему вы получаете нулевое целое как 0/Может быть, дизайн вашей базы данных неверен? Возможно, вам следует использовать что-то еще для обозначения отсутствующего/неизвестного приоритета, например -1, или использовать строки, или, может быть, есть какой-то другой метод, который предоставляет этот API, но я не знаком с ним. - person Łukasz   schedule 07.01.2016