Я успешно использовал javax.persistence.NamedQuery
в сочетании с JPA2.Именованные запросы определяются в верхней части файлов классов сущностей и используются из EJB-компонентов без сохранения состояния (фасад фасада).
Теперь мне пришлось извлечь файлы классов сущностей в отдельный файл Jar (поэтому мы можем использоватьих из проекта Google Web Toolkit).Очевидно, я до сих пор вкручиваю банку, но теперь фасадный компонент больше не находит запрос:
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 во внешнем Jar-файле?
Я только что нашел эту ссылку , предлагающую поместить NamedQueries в файлы XML, а не как аннотации в файлах сущностей.Это может быть идея, чтобы решить мою проблему, но не отвечает на мой вопрос ...;)