是否可以从另一个命名查询中调用命名查询?如果是这样,请在答案中加快速示例。
上下文
我有一个子查询,它将在其他一些查询中重复出现,并且不想做出维护的噩梦。
@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%’
在许多命名查询中。
答案 0 :(得分: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)