org.hibernate.QueryException:非法尝试取消引用集合-子查询错误

org.hibernate.QueryException:非法尝试取消引用集合-子查询错误,hibernate,jpa,Hibernate,Jpa,我尝试过类似的问题,但没有成功。拜托,有人能帮我解决这个问题吗。我有以下POJO: @Entity public class EntityA implements Serializable { private static final long serialVersionUID = 1L; @Id @GeneratedValue(strategy = GenerationType.AUTO) private int id; @Column(length=9) private Stri

我尝试过类似的问题,但没有成功。拜托,有人能帮我解决这个问题吗。我有以下POJO:

@Entity
public class EntityA implements Serializable  {

private static final long serialVersionUID = 1L;


@Id
@GeneratedValue(strategy = GenerationType.AUTO) 
private int id;

@Column(length=9)
private String someField;

@Column(length=50)
private String anotherField;

Getters and Setters ......




    @Entity
    public class EntityB {


private static final long serialVersionUID = 1L;


@Id
@GeneratedValue(strategy = GenerationType.AUTO) 
private int id;


@OneToMany(cascade={CascadeType.ALL} )
private List<EntityA> listOfEntityA;


Getters and Setters ......
在没有子查询的情况下也尝试过,将entityB字段中包含的对象EntityA列表作为参数传递,但同样没有成功

谁能告诉我哪里错了

提前感谢

尝试以下查询:

String query =
    "SELECT entityA " +
    "FROM EntityA entityA " +
    "WHERE entityA.id NOT IN (" +
    "   SELECT entityAOfB.id " +
    "   FROM EntityB entityB " +
    "   JOIN entityB.listOfEntityA entityAOfB " +
    "   WHERE entityB.id = ?1";
    ")";
请尝试以下查询:

String query =
    "SELECT entityA " +
    "FROM EntityA entityA " +
    "WHERE entityA.id NOT IN (" +
    "   SELECT entityAOfB.id " +
    "   FROM EntityB entityB " +
    "   JOIN entityB.listOfEntityA entityAOfB " +
    "   WHERE entityB.id = ?1";
    ")";

谢谢尼古拉·阿尔布。它工作得恰到好处。我对这个连接子句不太了解。我会寻找更多的信息。再次,非常感谢,谢谢尼古拉·阿尔布。它工作得恰到好处。我对这个连接子句不太了解。我会寻找更多的信息。再次感谢大家。
String query =
    "SELECT entityA " +
    "FROM EntityA entityA " +
    "WHERE entityA.id NOT IN (" +
    "   SELECT entityAOfB.id " +
    "   FROM EntityB entityB " +
    "   JOIN entityB.listOfEntityA entityAOfB " +
    "   WHERE entityB.id = ?1";
    ")";