Bom dia,
Estou com o seguinte problema e peço a gentileza de todos para me ajudar nisto.
Tenho duas classes, uma chamada de Pessoa e a outra chamada de convite. Preciso criar uma consulta que retorne todas as pessoas, menos aquelas que já tenham sido convidadas por mim.
public class Pessoa implements Serializable {
@Id
@GeneratedValue(generator = "system-uuid")
@GenericGenerator(name = "system-uuid", strategy = "uuid")
@Column(name = "id", unique = true, nullable = false, length = 32)
private String id;
@Column(nullable = false)
private String nome;
@Temporal(javax.persistence.TemporalType.DATE)
@Column(nullable = false)
private Date dataDeNascimento;
@Column(nullable = true)
private String observacao;
@OneToMany(mappedBy = "convidante", fetch = FetchType.LAZY, cascade = CascadeType.ALL)
private Set<Convite> convidantes;
@OneToMany(mappedBy = "convidado", fetch = FetchType.LAZY, cascade = CascadeType.ALL)
private Set<Convite> convidados;
}
public class Convite implements Serializable {
@EmbeddedId
private IConvitePK id = new IConvitePK();
@ManyToOne
@JoinColumn(name = "convidante", referencedColumnName = "id", nullable = false, insertable=false, updatable=false)
private AbstractPessoa convidante;
@ManyToOne
@JoinColumn(name = "convidado", referencedColumnName = "id", nullable = false, insertable=false, updatable=false)
private AbstractPessoa convidado;
@Temporal(javax.persistence.TemporalType.DATE)
@Column(nullable = false)
private Date data;
@Column(nullable = true)
private String mensagem;
private String status;
A consulta JPQL que estou tentando fazer é a seguinte:
List p = pfd.listPesq(""
+ "SELECT a FROM PessoaFisica a "
+ "LEFT JOIN FETCH a.websites w "
+ "LEFT JOIN FETCH a.emails e "
+ "LEFT JOIN FETCH a.imagens i "
+ "LEFT JOIN FETCH a.enderecos n "
+ "LEFT JOIN FETCH a.telefones l "
+ "LEFT JOIN FETCH a.convidados c "
+ "LEFT JOIN FETCH a.convidantes d "
+ " WHERE a.id <> '2c9088af32646b320132646c66a70002'"
+ " AND c.convidante.id <> '2c9088af32646b320132646c66a70002' ");
Porém esta consulta retorna uma lista vazia.
Toda contribuição é bem vinda. Obrigado.