Вызов HQL namedQuery из другого namedQuery? - PullRequest
2 голосов
/ 23 июня 2011

Можно ли вызвать именованный запрос из другого именованного запроса?Если да, приведите краткий пример в своем ответе.

Контекст:

У меня есть подзапрос, который будет повторяться по некоторым другим запросам, и я не хочу делатькошмар обслуживания.

@NamedQuery(name = "Album.getSong", query = "SELECT song_name FROM Album" +
"WHERE album_name = ‘And Justice for All’" +
"AND band_name = ‘Metallica’" +
"AND song_name NOT IN" +
"(SELECT song_name FROM Lyric" +
"WHERE song_lyric LIKE ‘%justice%’)")

за исключением того, что я буду повторно использовать

SELECT song_name FROM Lyric
WHERE song_lyric LIKE ‘%justice%’

в ряде именованных запросов.

1 Ответ

3 голосов
/ 23 июня 2011

Я не думаю, что вы можете повторно использовать именованные запросы в именованных запросах, возможно, у вашего поставщика ORM есть что-то, что делает это возможным.Однако вы можете ссылаться на статические строки в названном запросе для повторного использования.

@NamedQuery(name = "SELECT song_name FROM Album" +
"WHERE album_name = ‘And Justice for All’" +
"AND band_name = ‘Metallica’" +
"AND song_name NOT IN" + ExampleClass.QUERY)
...