Это не совсем отвечает на вопрос, но я не вижу смысла использовать константу для самого запроса. Я бы просто использовал что-то вроде этого:
@Entity
@NamedQuery(name = Customer.FIND_ALL, query="select c from Customer c"),
public class Customer {
public static final String FIND_ALL = "Customer.findAll";
// Attributes, constructors, getters, setters
}
И константа public
, потому что ... я хочу использовать ее для выполнения запросов:
Query query = em.createNamedQuery(Customer.FIND_ALL);
List<Customer> customers = query.getResultList();
Использование константы для имени запроса имеет смысл, поскольку вы будете ссылаться на него из нескольких мест (из аннотации @NamedQuery
при вызове запроса), а константа делает ваш код более устойчивым: он будет сопротивляться опечатки и рефакторинг. Преимущества очевидны.
Однако я лично не вижу реального преимущества в использовании константы для самого запроса.