JPA JOIN查询问题



我正在尝试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].

在JPQL中,你必须使用实体名称(默认情况下它是Java类的名称),对我来说,usertype_permissions是一个实体名称/Java类看起来很奇怪…

看起来你正在使用表名,join之后的单词必须指向类的属性,例如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

最新更新