Nie sądzę, że jest to możliwe, ponieważ wartości atrybutu adnotacji/właściwości muszą być dostępne w czasie kompilacji. Dlatego ciągi nie mogą być uzewnętrzniane do pliku, który musi zostać wczytany przez jakiś proces.
Próbowałem dowiedzieć się, czy istnieje coś, co pakiet-info.java może dostarczyć, ale nie może znaleźć nic.
Alternatywna strategia organizacji może przechowywać kwerendy jako stałe w klasie.
W swojej klasie jednostki:
@NamedQuery(name="plane.getAll", query=NamedQueries.PLANE_GET_ALL)
Następnie zdefiniowanie klasy dla swoich stałych zapytań:
public class NamedQueries {
...
public static final String PLANE_GET_ALL = "select p from Plane p";
...
}
Z mojego punktu widzenia nie jest to eksternalizacja zapytań - jest skompilowana w klasie i dla mnie ma dziesiątki zapytań w klasie encji lub jeszcze więcej zapytań w klasie informacji o pakiecie, który wybieram. IMHO to nie jest poprawna odpowiedź na to pytanie, nie mam pojęcia, dlaczego jest ona akceptowana -> -1 – Betlista
+1 Dla mnie jest OK. Pokazuje, w jaki sposób można uzyskać dostęp za pomocą Java Config i XML. Przeczytaj pytanie przed obniżeniem, wyraźnie stwierdza, że nie chce mieć NamedQueries w klasie. – Augusto