Bom dia,
Peço ajuda para a realização de uma consulta em classes com relacionamento @ManyToMany.
O problema é o seguinte.
Tenho uma classe chamada AbstractPessoa e outra chamada Endereco. A classe AbstractPessoa pode ter vários endereços e um Endereço pode ser de várias pessoas.
Como posso obter todas as pessoas que moram em um endereço e que comecem com o nome por exemplo “José”.
@Entity
@Table(name = "pessoas")
@Inheritance(strategy = InheritanceType.JOINED)
public abstract class AbstractPessoa 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;
@OneToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "senha", referencedColumnName = "id")
private Senha senha;
@ManyToMany(cascade = CascadeType.ALL)
@JoinTable(name = "enderecosdepessoas", joinColumns =
@JoinColumn(name = "pessoa"), inverseJoinColumns =
@JoinColumn(name = "endereco"))
private Set<Endereco> enderecos;
}
@Entity
@Table(name = "enderecos")
public class Endereco extends Entidade {
private String logradouro;
private String cidade;
private String estado;
@Column(nullable = true)
private String numero;
@Column(nullable = true)
private String complemento;
@ManyToMany(targetEntity = AbstractPessoa.class, mappedBy = "enderecos", fetch = FetchType.LAZY)
private List<AbstractPessoa> pessoas;
Agradeço qualquer ajuda.