Я успешно использовал javax.persistence.NamedQuery
в сочетании с JPA2. Именованные запросы определяются в верхней части файлов классов сущностей и используются из EAS (State Facade) без состояния.
Теперь мне пришлось извлечь файлы класса сущности в отдельный файл Jar (чтобы мы могли использовать их из проекта Google Web Toolkit). Очевидно, я все еще использую флягу, но теперь фасад bean больше не находит запрос:
java.lang.IllegalArgumentException: NamedQuery of name: Store.findByExternalId not found.
at org.eclipse.persistence.internal.jpa.EJBQueryImpl.getDatabaseQueryInternal(EJBQueryImpl.java:576)
at org.eclipse.persistence.internal.jpa.EntityManagerImpl.createNamedQuery(EntityManagerImpl.java:1004)
at com.sun.enterprise.container.common.impl.EntityManagerWrapper.createNamedQuery(EntityManagerWrapper.java:533)
at com.skalio.bonusapp.server.StoreFacade.getByExternalId(StoreFacade.java:43)
...
В чем проблема? Могу ли я определить NamedQueries во внешнем банке?
Я только что нашел ссылку , предлагая поместить NamedQueries в файлы XML, а не как аннотации в файлах сущностей. Это может быть идея решить мою проблему, но не отвечает на мой вопрос...;)