Сопоставление сущностей без Hibernate (JPA)

Необходимо читать объекты Java из базы данных. Выбор базы данных пока неясен, поэтому мой код должен быть независимым от БД. Hibernate обеспечивает достаточно такой независимости, но он (как я вижу) в основном предназначен для внешнего интерфейса. Проблема в том, что он возвращает коллекции, которые сначала кэшируются на стороне клиента. Моему приложению требуется чтение большого количества объектов для их обработки за один проход. Использование чистого JDBC с ResultSet более подходит для этого, но требует довольно много стандартного кода с собственным SQL.

Хотелось бы ваших предложений о решении. Посмотрите на это примерно так: мы определяем сущности JPA, затем итеративно считываем их из БД, используя creteria, например, в HQL. И объекты не должны собираться на стороне клиента до начала итерации (за исключением, возможно, некоторой буферизации по соображениям производительности).

Также были бы рассмотрены решения Java, не основанные на Hibernate/JPA.

попробуйте этот jooq.org

Ashok Kumar N 05.02.2019 11:18

Спасибо, @ashok-kumar-n, но версия Community не поддерживает мою БД :(

Nick Legend 05.02.2019 11:30

какую бд вы используете

Ashok Kumar N 05.02.2019 11:31

Текущий Oracle и рассматривается PostgreSQL. Также моя компания предпочитает использовать бесплатные решения.

Nick Legend 05.02.2019 11:35

отправьте эту ссылку stackoverflow.com/questions/7242388/…, если какие-либо комментарии полезны, просто проголосуйте за них.

Ashok Kumar N 05.02.2019 11:38

Что вы имеете в виду под клиентом / интерфейсом?

Sebastian 05.02.2019 12:33

@ashok-kumar-n, да, этот ответ, кажется, указывает правильное направление. Извините, не могу проголосовать :(

Nick Legend 05.02.2019 12:52

уже есть вопрос по этой проблеме, поэтому я отмечаю как дубликат

Ashok Kumar N 06.02.2019 08:10

@ user10815638: Деньги, которые вы потратите на внедрение собственного решения для обхода различий в диалектах баз данных, определенно перевесят любые лицензии jOOQ. Вот лишь краткий обзор того, что jOOQ делает для вас

Lukas Eder 06.02.2019 10:35

@ Лукас Эдер, к настоящему времени будет не более 100 нативных запросов. Наверное, проще переписать их все. Хотя все еще на рассмотрении.

Nick Legend 07.02.2019 17:00

@ user10815638, вы все еще можете использовать jOOQ, чтобы переписать их: jooq.org/перевод

Lukas Eder 07.02.2019 17:23
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
11
391
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

В соответствии с вашим вариантом использования сравните поддерживаемый API для JDBC по ссылке ниже. сравнение API JDBC

Другие вопросы по теме