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




На самом деле я не нашел способа сделать это с помощью JPA. Чтобы решить подобные проблемы, я использовал именованный запрос.
Что касается документации, я использовал TopLink's и Hibernate's.
Если вы найдете способ получше, опубликуйте его здесь!
Не могли бы вы создать представление базы данных, а затем создать объект, который отображается на этом представлении? Не знаю, возможно ли это, просто мысль.
Взгляните на @SecondaryTable (s). Есть несколько примеров этого в книге Pro EJB 3 Java Peristance API, страница 237.
Кроме того (по крайней мере, в MS SQL Server) вы можете создать триггер INSTEAD OF в представлении, чтобы позволить JPA вставлять в представление и передавать правильные данные в 3 таблицы.