Estou com uma dúvida de como fazer uma consulta utilizando o hibertante
minha sql seria a seguinte
"select reprodutor.nr_mossa, cobertura.dt_record
from matriz, cobertura, reprodutor
where matriz.cd_reprodutor = cobertura.nr_matriz
and matriz.cd_reprodutor = reprodutor.cd_reprodutor
and matriz.nr_ciclo = cobertura.nr_ciclo
and matriz.st_reproducao = 2
and cobertura.dt_record > '01/01/2010' "
minhas classes
Classe reprodutor@Entity
@Table(name="reprodutor")
@SequenceGenerator(name = "SQREPRODUTOR", sequenceName = "SQREPRODUTOR", initialValue = 1)
@Inheritance(strategy=InheritanceType.JOINED)
public abstract class Reprodutor implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "SQREPRODUTOR")
@Column(name = "cd_reprodutor", length=5, nullable=false)
private int cdReprodutor;
@Column(name="nr_mossa", length=5, nullable=false)
private String nrMossa;
@ManyToOne
@JoinColumn(name="cd_raca", nullable=false)
private Raca raca;
@Column(name="dt_nascimento", nullable=false)
@Temporal(javax.persistence.TemporalType.DATE)
private Date dtNascimento;
@Column(name="dt_entradagranja", nullable=false)
@Temporal(javax.persistence.TemporalType.DATE)
private Date dtEntradaGranja;
@Column(name="ps_entrada", length=4, precision=2, nullable=false)
private Double psEntrada;
@Column(name="vl_compra", length=4, precision=2, nullable=false)
private Double vlCompra;
@Column(name="ds_observacao", length=500, nullable=true)
private String dsObservacao;
@Column(name="tp_reprodutor", length=1, nullable=false)
private String tpReprodutor;
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name="nr_compra", nullable = false)
@ForeignKey(name="RCOMPRAREPRODUTOR_REPRODUTOR")
private CompraReprodutor compraReprodutor;
@Temporal(javax.persistence.TemporalType.TIMESTAMP)
@Column(name="dt_record")
private Date dtRecord = new Date();
//setter e getters
Classe matriz
@Entity
@Table(name = "matriz")
@PrimaryKeyJoinColumn(name = "cd_reprodutor")
public class Matriz extends Reprodutor {
@Column(name = "nr_ciclo", length = 2, nullable = false)
private int nrCiclo;
//1 - Vazia(leitoa), 2 - Gestacao, 3 - Lactacao, 4 - Vazia
@Column(name = "st_reproducao", length = 1, nullable = false)
private int stReproducao;
@Column(name = "nr_cicloentrada", length = 2, nullable = false)
private int nrCicloEntrada;
//1- ativa, 2- descartada, 3- morta
@Column(name = "st_matriz", length = 1, nullable = false)
private int stMatriz;
@OneToMany(mappedBy = "coberturaPK.matriz")
private List<Cobertura> coberturas;
@OneToMany(mappedBy = "matriz")
private List<Parto> partos;
@Column(name = "dt_record", nullable = false)
@Temporal(javax.persistence.TemporalType.DATE)
private Date dtRecord = new Date();
//setters e getters
@Entity
@Table(name="cobertura")
public class Cobertura implements Serializable{
@EmbeddedId
private CoberturaPK coberturaPK;
@OneToMany(mappedBy="montaPK.cobertura")
private List<Montas> montas;
@Temporal(javax.persistence.TemporalType.DATE)
@Column(name="dt_record")
private Date dtRecord = new Date();
//valida e inválida (repeticao, aborto....)
@Column(name="st_cobertura")
private String stCobertura;
//setters e getters
@Embeddable
public class CoberturaPK implements Serializable {
@ManyToOne
@JoinColumn(name = "nr_matriz")//, referencedColumnName = "nr_mossa", insertable = false, updatable = false)
private Matriz matriz;
@Column(name="nr_ciclo")
private int nrCiclo;
public CoberturaPK() {
}