2011-06-22 19 views
2

別の名前付きクエリ内から名前付きクエリを呼び出すことはできますか?もしそうなら、あなたの答えに簡単な例を投げてください。別のnamedQuery内からHQL namedQueryを呼び出しますか?

コンテキスト:

私はいくつかの他のクエリaccross繰り返されるとmaintenceの悪夢をしたくないサブクエリを持っています。私は名前付きクエリの数に

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

を再利用されることを除いて

@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%’)") 

答えて

3

名前付きクエリで名前付きクエリを再利用できるとは思われません。これを可能にする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) 
+0

これは、可能でないと分かった場合、良い回避策になります。ありがとう! – Adam

関連する問題