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_Collections_Many To Many - Fatal编程技术网

Java JPA从具有多对多关联的集合中选择

Java JPA从具有多对多关联的集合中选择,java,jpa,collections,many-to-many,Java,Jpa,Collections,Many To Many,我有两个具有多对多关联的实体类 ModPm: @Entity @Table(name = "MOD_PM") public class ModPm extends WebPageObject implements Serializable, IDBNamedEntity { private static final long serialVersionUID = 1L; public final static String Q_GET_WITHOUT_STATUS_FOR_S

我有两个具有多对多关联的实体类

ModPm:

@Entity
@Table(name = "MOD_PM")
public class ModPm extends WebPageObject implements Serializable, IDBNamedEntity {

    private static final long serialVersionUID = 1L;

    public final static String Q_GET_WITHOUT_STATUS_FOR_SCOPE = "ModPm.getWithoutStatusForScope";

    @Id
    private long id;
    ....
    @ManyToMany
    @JoinTable(name = "MOD_PM_SCOPE_TYPES",
            joinColumns = @JoinColumn(name = "PM_ID"),
            inverseJoinColumns = @JoinColumn(name = "SCOPE_TYPE_ID")
    )
    private List<ModScopeType> modScopeTypes;

如何将此查询转换为JPQL?

当您在查询中引用SCOPE\u TYPE\u ID时,您指的是什么?可能是ScopeType的ID或其他我没有看到的字段。我假设范围类型id字段丢失

试试这个:

select p from ModPm p join p.modScopeTypes type where type.scopeTypeId = 1

ModScopeType类有一个名为MOD_SCOPES的表注释,你是说MOD_SCOPES表中的一条记录吗?Thx,对我来说很好。SCOPE_TYPE_ID是MOD_PM_SCOPE_TYPES表的字段,它有两列-PM_ID和SCOPE_TYPE_ID,每列引用表MOD_PM和MOD_SCOPE_TYPE的主键列
SELECT ID, NAME FROM MOD_PM WHERE ID IN (SELECT PM_ID FROM MOD_PM_SCOPE_TYPES WHERE SCOPE_TYPE_ID=1)
select p from ModPm p join p.modScopeTypes type where type.scopeTypeId = 1