是否可以从另一个命名查询中调用一个命名查询?如果是这样,请在您的答案中举一个简单的例子。
上下文:
我有一个子查询,它将在其他一些查询中重复,并且不想造成维护噩梦。
@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%’
在许多命名查询中。
最佳答案
我认为您不能在命名查询中重复使用命名查询,您的 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)
关于annotations - 从另一个命名查询中调用 HQL 命名查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6447457/