Я пытаюсь получить 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.