Ajuda consulta jpa n:n

Pessoal, nao consigo realizar uma consulta usando jpa de um relacionamento N:N, poderiam me auxiliar?

Banco postgresql uso do toplink

desde ja agradeço

O que já fez? Como estão suas entidades?

rapha, segue a tentativa, não consegui fazer com que ele traga apenas o teste 1

TestesDAO

public static List recuperaTestes(Aluno alu) {

    List<Testes> meustestes = new ArrayList<>();
 
    if(alu!=null ){
         
        
         conectar();    
          
             meustestes =  em.createQuery("select DISTINCT t from Testes as t  join t.testesalunos as ta join ta.aluno as a   where t.situacao ='ABERTO'  and  ( a.alNome <>"+alu.getAlNome() + ")"  ).getResultList();
          
            desconectar();
           
            
            
    }
     
    return meustestes;
    
}

Seguem o mapeamento nas classes:

public class Testes implements Serializable {

private static final long serialVersionUID = 1L;
@Id
@Column(name = "t_id")
@SequenceGenerator(name="Meus_Testes_Generator", sequenceName="meus_testes_sequence", allocationSize=1)
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="Meus_Testes_Generator")
private BigInteger tId;

 private Date data;
 @Column(name = "data")

 @Column(name = "situacao")
 private String situacao;

  @OneToMany(cascade={CascadeType.PERSIST, CascadeType.MERGE},    mappedBy = "meutesteId")

  private Collection<TestesAluno> testesalunos = new ArrayList<TestesAluno>();

//getters and setters…
}

public class TestesAluno implements Serializable {

private static final long serialVersionUID = 1L;
@Id
@Column(name = "ta_id")
@SequenceGenerator(name="Meus_Testes_Aluno_Generator", sequenceName="meus_testes_Aluno_sequence", allocationSize=1)
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="Meus_Testes_Aluno_Generator")
private BigInteger taId;

...atributos...


@JoinColumn(name = "t_id", referencedColumnName = "t_id" , nullable= false)
@ManyToOne(optional = false)
private Testes meutesteId;

@JoinColumn(name = "al_id", referencedColumnName = "al_id" , nullable= false)
@ManyToOne(optional = false)
private Alunos aluno;

//getters and setters…
}

public class Aluno implements Serializable {

private static final long serialVersionUID = 1L;
@Id
@Column(name = "al_id")
@SequenceGenerator(name="Meus_Alunos_Generator", sequenceName="meus_alunos_sequence", allocationSize=1)
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="Meus_Alunos_Generator")
private BigInteger alId;

 private String alNome;
 @Column(name = "nome")



  @OneToMany(cascade={CascadeType.PERSIST, CascadeType.MERGE},    mappedBy = "aluno")

  private Collection<TestesAluno> testesalunos = new ArrayList<TestesAluno>();

//getters and setters…
}

Tenta essas duas opções de jpql

select c from TestesAluno c where c.aluno.alId = ?1 // encontra todos os testes de um aluno por id

select c from TestesAluno c where c.meutesteId.tId= ?1 // encontra todos os alunos que fizeram um determinado teste