2015-01-05 5 views
0

У меня возникают некоторые проблемы, с первого раза, когда я попал в JPA. Это запрос, который я хотел бы добавить как @NamedQuery, и этот SQL работает.JPA - Мой Именованный запрос не будет работать

select t1.*, t2.SHORT_NAME from ePluribusWS.GRAPH_ACL t1 join DB_AUTH.USERS t2 on t1.USER_ID = t2.ID where GRAPH_ID = 31611 ; 

Я не уверен, если это поддерживается в JPA, так как я делаю РЕГИСТРИРУЙТЕСЬ в различных базах данных, но в пределах одного сервера. SQL работает отлично.

Когда я пытаюсь добавить это как именованный запрос (третий ниже), я получаю сообщение об ошибке (синтаксический анализ ошибок), что «выражение пути не может заканчиваться запятой», которое единственное отображение Google показывает мне JPA, который сгенерировал сообщение об ошибке.

@Entity 
@Table(name = "GRAPH_ACL", catalog = "ePluribusWS", schema = "") 
@XmlRootElement 
@NamedQueries({ 
. 
. 
    @NamedQuery(name = "EPluribusACLEntryRecord.findByUserId", query = "SELECT g FROM ACLEntryRecord g WHERE g.userId = :userId"), 
    @NamedQuery(name = "EPluribusACLEntryRecord.findByGraphId", query = "SELECT t1.*, t2.SHORT_NAME FROM ACLEntryRecord t1 JOIN DB_AUTH.USERS t2 ON t1.USER_ID = t2.ID WHERE t1.GRAPH_ID = :graphId"), 
    @NamedQuery(name = "EPluribusACLEntryRecord.findByCreated", query = "SELECT g FROM ACLEntryRecord g WHERE g.created = :created"), 

Я немного смущен, так как это похоже на аннотации JPA, требующие, чтобы они заканчивались запятой.

Спасибо, что нашли время, чтобы прочитать мой вопрос и дать какое-либо представление. Обычно редакторы удаляют это «спасибо», что я считаю своего рода неприятным изменением.

ответ

1

NamedQuery - это JPQL, а не SQL. Нет «*» и «DB_AUTH.USERS» является недопустимой конструкцией в JPQL ... должно относиться к объектам относительно объекта-кандидата (сущность определяет, где находится его схема).

Если вы хотите обратиться к таблицам, которые не отображенные субъектам, то вам придется использовать запрос SQL (NamedNativeQuery)

+0

Спасибо. Такой подход сработал. –

Смежные вопросы