JDBI: Как я могу рассматривать результат запроса с объединенными таблицами как результат одной таблицы и сопоставлять егJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 JDBI: Как я могу рассматривать результат запроса с объединенными таблицами как результат одной таблицы и сопоставлять ег

Сообщение Anonymous »

Я делаю свои первые шаги с JDBI 3.45.1, и мне удалось успешно прочитать данные из отдельных таблиц базы данных PostgreSQL с помощью дескрипторов. Но, к сожалению, мне не удалось прочитать данные из запросов, объединяющих таблицы.
Я прочитал главу о соединениях в документации по разработке JDBI и узнал о JoinRowMapper и ResultBearing#reduceRows(). и уменьшитьResultSet(), но то, чего я хотел бы достичь, гораздо проще: я не хочу создавать объекты и преобразователи для каждой таблицы, которая является частью соединения — я бы просто хотел выполнить запрос и сопоставить результаты с одиночным объектом, обрабатывая результат так, как будто он получен из одной таблицы.
По сути, я пробовал следующее:

Код: Выделить всё

Optional statusAndAuthor = jdbi.withHandle(
handle -> handle.registerRowMapper(StatusAndAutor.class,
ConstructorMapper.of(StatusAndAutor.class))
.createQuery("""
select r.status, c.author
from public.test_result r
join public.test_case c on r.test_case_id = c.id
limit 1
"""))
.mapTo(StatusAndAutor.class)
.findOne();
Очевидно, что я использую JDBI неправильно, поскольку это приводит к исключению:

Код: Выделить всё

Exception in thread "main" org.jdbi.v3.core.statement.UnableToCreateStatementException: org.postgresql.util.PSQLException: This connection has been closed. [statement:"select r.status, c.author
from public.test_result r
join public.test_case c on r.test_case_id = c.id
limit 1
", arguments:{positional:{}, named:{}, finder:[]}]
at org.jdbi.v3.core.statement.SqlStatement.internalExecute(SqlStatement.java:1801)
at org.jdbi.v3.core.result.ResultProducers.lambda$createResultBearing$3(ResultProducers.java:95)
at org.jdbi.v3.core.result.internal.ResultSetSupplier.get(ResultSetSupplier.java:55)
at org.jdbi.v3.core.result.internal.ResultSetResultIterator.(ResultSetResultIterator.java:50)
at org.jdbi.v3.core.result.internal.ResultSetResultIterable.iterator(ResultSetResultIterable.java:51)
at org.jdbi.v3.core.result.ResultIterable.findOne(ResultIterable.java:193)
at org.guetter.Main.main(Main.java:23)
Caused by: org.postgresql.util.PSQLException: This connection has been closed.
Меня немного озадачивает тот факт, что соединение PostgreSQL здесь неожиданно закрывается, но это происходит всегда, когда я читаю объединенные данные, и никогда не происходит, когда я читаю данные из одной таблицы.< /p>
Конечно, я мог бы попытаться воспользоваться предложениями документации по разработке и создать весь необходимый для этого шаблонный код. Но когда я думаю о том, насколько простым и оптимизированным может быть использование JDBI в других сценариях, я задаюсь вопросом, нет ли на самом деле более простого способа добиться того, чего я хочу.
Так есть ли? Неужели нет простого способа сопоставить результат запроса с объединениями с одним объектом?

Подробнее здесь: https://stackoverflow.com/questions/783 ... oming-from
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Почему я не могу искать сущности между объединенными таблицами?
    Anonymous » » в форуме JAVA
    0 Ответы
    21 Просмотры
    Последнее сообщение Anonymous
  • Почему я не могу искать сущности между объединенными таблицами?
    Anonymous » » в форуме JAVA
    0 Ответы
    23 Просмотры
    Последнее сообщение Anonymous
  • Цикл PHP с объединенными таблицами MySQL
    Anonymous » » в форуме Php
    0 Ответы
    17 Просмотры
    Последнее сообщение Anonymous
  • Цикл PHP с объединенными таблицами MySQL
    Anonymous » » в форуме Html
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • Установите взаимосвязь между тремя таблицами из одной композитной таблицы в Spring Whibernate
    Anonymous » » в форуме JAVA
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous

Вернуться в «JAVA»