JPA - сопоставить объект с запросом sql?

Я пишу соединитель JPA для устаревшей системы. Проблема в том, что дизайн БД в системе ... ну ... ужасен.

Мне нужно реализовать объект, который сопоставляется с тремя таблицами. Я могу сделать это, используя именованные sql-запросы, но проблема в том, что я должен использовать эту сущность в отношении OneToMany (эта сущность находится на стороне многих). Итак, как мне сказать JPA, что ему нужно использовать конкретный именованный запрос с определенным параметром?

И подвопрос: есть ли у any1 хорошая онлайн-документация по JPA? Ничего приличного найти не могу: - /

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

Ответы 3

На самом деле я не нашел способа сделать это с помощью JPA. Чтобы решить подобные проблемы, я использовал именованный запрос.

Что касается документации, я использовал TopLink's и Hibernate's.

Если вы найдете способ получше, опубликуйте его здесь!

Не могли бы вы создать представление базы данных, а затем создать объект, который отображается на этом представлении? Не знаю, возможно ли это, просто мысль.

Кроме того (по крайней мере, в MS SQL Server) вы можете создать триггер INSTEAD OF в представлении, чтобы позволить JPA вставлять в представление и передавать правильные данные в 3 таблицы.

John K 28.01.2010 18:57

Взгляните на @SecondaryTable (s). Есть несколько примеров этого в книге Pro EJB 3 Java Peristance API, страница 237.

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