JPA JOIN Вопрос запроса - PullRequest
       1

JPA JOIN Вопрос запроса

0 голосов
/ 21 ноября 2011

Я экспериментирую с запросами JPA, но получаю сообщение об ошибке в следующем запросе

SELECT p
FROM usertype_permissions up
JOIN permissions p ON up.PERMISSION_ID = p.ID
WHERE up.USERTYPE_ID = 1

Ошибка:

Caused by: java.lang.IllegalArgumentException: An exception occurred while
creating a query in EntityManager: 

Exception Description: Syntax error parsing the query
[SELECT p
FROM usertype_permissions up
JOIN permissions p ON up.PERMISSION_ID = p.ID
WHERE up.USERTYPE_ID = 1].

1 Ответ

0 голосов
/ 21 ноября 2011

В JPQL вы должны использовать имена сущностей (по умолчанию это имя класса Java), мне кажется странным, что usertype_permissions - это имя сущности / класс Java ...

Похоже, вы используете имена таблиц, и слово после объединения должно ссылаться на атрибут класса, например l.books

Пример:

@Entity
public class Lib implements Serializable {
      @OneToMany
      private Set<Book> books;
}

@Entity
public class Book implements Serializable {
      @OneToOne
      private Lib lib;
}

запрос JPQL будет выглядеть так:

SELECT l FROM Lib JOIN l.books books
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...