Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JPA连接查询问题_Java_Jpa - Fatal编程技术网

Java JPA连接查询问题

Java JPA连接查询问题,java,jpa,Java,Jpa,我正在试验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:

我正在试验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\u 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;
}

usertype_权限不是一个类,它是由于对多关系生成的表。。。如何从该表中获取数据?我假设您有一个拥有权限对象集合的类用户,然后。。。我猜你想要一个用户的许可证?然后只需执行以下操作:从用户u中选择u.permissions,其中u.id=1
SELECT l FROM Lib JOIN l.books books