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 将的成员与由复合键标识的实体集合一起使用_Java_Jpa_Persistence_Jpql - Fatal编程技术网

Java 将的成员与由复合键标识的实体集合一起使用

Java 将的成员与由复合键标识的实体集合一起使用,java,jpa,persistence,jpql,Java,Jpa,Persistence,Jpql,我试图返回一组不属于集合的对象,如下所示: TypedQuery<Extra> q = em .createQuery( "SELECT e FROM Extra e, Arrangement a WHERE " + "a.id = :arrid AND e NOT MEMBER OF a.extras", Extra.cla

我试图返回一组不属于集合的对象,如下所示:

    TypedQuery<Extra> q = em
            .createQuery(
                    "SELECT e FROM Extra e, Arrangement a WHERE "
                        + "a.id = :arrid AND e NOT MEMBER OF a.extras",
                    Extra.class);
    q.setParameter("arrid", a.getId());
    return q.getResultList();
问题是,另一个查询按预期工作:

    TypedQuery<Exhibitor> q = em.createQuery(
        "SELECT e FROM Exhibitor e, Edition ed WHERE ed.number = :ednum AND "
        + "e NOT MEMBER OF ed.exhibitors",
        Exhibitor.class);
    q.setParameter("ednum", e.getNumber());
    return q.getResultList();

你知道我可能做错了什么以及如何修复吗?

我想这和我的问题是一样的。 H2当前不支持该类型的IN查询

sql查询中存在问题的地方:

AND ( ( extra0_.code, extra0_.edition_number ) NOT IN (SELECT ...) )
这实际上是我的问题,使用mysql一切都能如期工作!
@Entity
@Table(name = "exhibitors")
public class Exhibitor implements Serializable, Comparable<Exhibitor> {

    @Id
    private int id;
    @Column(length = 100)
    private String code;
    @ManyToMany
    private List<Edition> edition;
    ...
}
@Entity
@Table(name="extra_arrangements")

public class Extra implements Serializable {

    @EmbeddedId
    private ExtraCode id;
    private double unitCost;
    private double units;
    ...
}


@Embeddable
public class ExtraCode implements Serializable {

    private String code;
    @ManyToOne
    private Edition edition;

    //Getters and setters omitted
}
AND ( ( extra0_.code, extra0_.edition_number ) NOT IN (SELECT ...) )