NullPointerException при попытке получить java.sql.Timestamp, используя свободный API JDBI - PullRequest
0 голосов
/ 18 октября 2018

Я пытаюсь получить MAX(ymdh) из таблицы Vertica, используя следующее.

    String query = "SELECT MAX(ymdh) AS ymdh_max FROM table_name";
    VerticaDBUtil tjVerticaUtil = VerticaDBUtil.getVerticaRODBUtil();
    Jdbi jdbi = tjVerticaUtil.getDbi();
    Handle handle = jdbi.open();
    List<java.sql.Timestamp> maxYmdhStr = handle.createQuery(query).mapTo(java.sql.Timestamp.class).list();

В то время как запрос возвращает допустимую метку времени при запуске необработанного SQL с JDBI, я получаю исключение NullPointerException для .list().

Exception in thread "main" java.lang.NullPointerException
    at com.github.arteam.jdbi3.InstrumentedTimingCollector.collect(InstrumentedTimingCollector.java:34)
    at org.jdbi.v3.core.statement.SqlStatements$1.logAfterExecution(SqlStatements.java:153)
    at org.jdbi.v3.core.statement.SqlLoggerUtil.wrap(SqlLoggerUtil.java:32)
    at org.jdbi.v3.core.statement.SqlStatement.internalExecute(SqlStatement.java:1380)
    at org.jdbi.v3.core.result.ResultProducers.lambda$getResultSet$2(ResultProducers.java:68)
    at org.jdbi.v3.core.result.ResultIterable.lambda$of$0(ResultIterable.java:53)
    at org.jdbi.v3.core.result.ResultIterable.stream(ResultIterable.java:141)
    at org.jdbi.v3.core.result.ResultIterable.collect(ResultIterable.java:197)
    at org.jdbi.v3.core.result.ResultIterable.list(ResultIterable.java:186)

У кого-нибудь были подобные проблемы при использовании JDBI для получения меток времени?Я попытался зарегистрировать преобразователь строк для java.sql.Timestamp следующим образом.

jdbi.registerRowMapper(java.sql.Timestamp.class, (rs, ctx) -> rs.getTimestamp("ymdh_max"));

Но я все еще получаю исключение NullPointerException.

...