簡體   English   中英

JPA JOIN查詢問題

[英]JPA JOIN Query issue

我正在嘗試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類看起來很奇怪。

看起來您正在使用表名,並且連接后的單詞必須引用類的屬性,例如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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM