Вопрос по – JPQL СОЕДИНЯЕТСЯ с вложенным SELECT

5

Могу ли я сделать что-то подобное на JPQL?

<code>SELECT NEW com.MyDTO(p.a, p.b, q.c, q.d)
FROM
(SELECT r.* FROM MyDTO1 r ) p
LEFT OUTER JOIN
(SELECT s.* FROM MyDTO2 s ) q
ON p.x = q.y 
</code>

или похожие? (Вышеупомянутый запрос смешался с native и JPQL, поэтому не поймите неправильно)

У меня проблема с этой частью, я думаю.

<code>FROM
(SELECT r.* FROM MyDTO1 r ) p
</code>

Когда я пытаюсь выполнить, я получаю эту ошибку.

<code>Exception Description: Syntax error parsing the query [.....], unexpected token [(]
</code>

Спасибо!

Ваш Ответ

2   ответа
2

Вы должны использоватьнативные запросы, Вот пример:

emf = Persistence.createEntityManagerFactory("TEST")    
EntityManager em = emf.createEntityManager();
String queryString = "SELECT ID FROM ( SELECT * FROM ADDRESS WHERE ID < 0)";
Query query = em.createNativeQuery(queryString);
List<BigDecimal> result = query.getResultList();
4

документация:

Note that HQL subqueries can occur only in the select or where clauses.

Похожие вопросы