Galera, é o seguinte, tenho essas tabelas no meu BD:
@Entity
@Table(name="paciente")
public class Paciente implements Serializable {
private static final long serialVersionUID = 1L;
@Id
private int id;
private String endereco;
private String nome;
@Column(name="nome_mae")
private String nomeMae;
//bi-directional many-to-one association to Historico
@OneToMany(mappedBy="paciente")
private List<Historico> historicos;
//bi-directional many-to-many association to Vacina
@ManyToMany(cascade={CascadeType.MERGE})
@JoinTable(name="historico",
joinColumns={@JoinColumn(name="fk_paciente")}
, inverseJoinColumns={
@JoinColumn(name="fk_vacina")
}
)
private List<Vacina> vacinas;
@Entity
@Table(name="vacina")
public class Vacina implements Serializable {
private static final long serialVersionUID = 1L;
@Id
private int id;
private String nome;
//bi-directional many-to-one association to Historico
@OneToMany(mappedBy="vacina")
private List<Historico> historicos;
//bi-directional many-to-many association to Paciente
@ManyToMany(mappedBy="vacinas", cascade={CascadeType.MERGE})
private List<Paciente> pacientes;
//bi-directional many-to-many association to Dos
@ManyToMany
@JoinTable(
name="historico"
, joinColumns={
@JoinColumn(name="fk_vacina")
}
, inverseJoinColumns={
@JoinColumn(name="fk_doses")
}
)
private List<Dos> doses;
}
@Entity
@Table(name="doses")
public class Dos implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private int id;
private String descricao;
//bi-directional many-to-one association to Historico
@OneToMany(mappedBy="dos")
private List<Historico> historicos;
//bi-directional many-to-many association to Vacina
@ManyToMany(mappedBy="doses")
private List<Vacina> vacinas;
}
@Entity
@Table(name="historico")
public class Historico implements Serializable {
private static final long serialVersionUID = 1L;
@Id
private int id;
@Temporal( TemporalType.DATE)
private Date data;
//bi-directional many-to-one association to Paciente
@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(name="fk_paciente")
private Paciente paciente;
//bi-directional many-to-one association to Dos
@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(name="fk_doses")
private Dos dos;
//bi-directional many-to-one association to Vacina
@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(name="fk_vacina")
private Vacina vacina;
Minha dúvida é, preciso de fazer uma pesquisa no banco de dados, pra me retornar todas as doses, data da tabela historico onde o nome da vacina=x e o nome do paciente=y, nesse caso ele irá me retornar uma list. tô apanhando pra caramba