Я бы хотел поменять реализацию JPA между EclipseLink и Hibernate с помощью простого изменения свойства.Я могу сделать это хорошо, но то, что вызывает у меня проблемы, это проверка именованного запроса.Используя EclipseLink, я должен написать выборочные соединения следующим образом:
SELECT id
FROM IndexDefinition id
JOIN FETCH id.index
JOIN id.index i
JOIN FETCH i.indexVersions
Но при проверке этого запроса с использованием Hibernate я получаю следующее исключение:
org.hibernate.QueryException: query specified join fetching, but the owner of the fetched association was not present in the select list
Так что я могу изменить запрос наHQL дружественен вот так:
SELECT id
FROM IndexDefinition id
JOIN FETCH id.index i
JOIN FETCH i.indexVersions
Но тогда это вызывает следующее исключение в EclipseLink:
Exception Description Syntax error parsing the query [IndexDefinition.getForIndex] SELECT id FROM IndexDefinition id JOIN FETCH id.index i, syntax error at [id].
Internal Exception MismatchedTokenException(78!=-1)
Я знаю, что могу использовать подсказки запросов на уровне DAO для выполнения выборочного соединения, ноЕсть ли способ удовлетворить обе реализации JPA с помощью специального синтаксиса соединения выборки?