Olá
estou fazendo um sistema para controle leiteiro
e uso o hibernate
no banco de dados tenho as tabelas produtor, animal e mortalidade
quando um animal morre, eu não quero exclui-lo do banco, pois quero manter um registro de todos os animais
então eu coloco ele na tabela mortalidade.
porém quando eu buscar os animais, preciso trazer somente os 'vivos’
então eu precisaria de uma forma de buscar animais que não estão ligados a tabela mortalidade
e eu não sei como fazer isso no hibernate.
aqui está minha consulta que eu fiz
mas ela só está pesquisando os animais do produtor selecionado
está vindo as vivas e as mortas
public List<Animal> listar(Produtor p) {
Session session = null;
try {
session = factory.openSession();
Criteria consulta = session.createCriteria(Animal.class);
consulta.add(Expression.eq("produtor", p));
consulta.add(); <------------------------------------------- adicionar mais uma expressão para mortalidade
List<Animal> resultado = consulta.list();
session.flush();
return resultado;
minha classe animal:
@Entity
@SequenceGenerator(name="seq_animal", sequenceName="animal_idanimal_seq", allocationSize = 1, initialValue = 1)
@Table(name="animal"
,schema="public"
)
public class Animal implements Comparable<Animal>, java.io.Serializable {
@Transient
private PropertyChangeSupport changeSupport = new PropertyChangeSupport(this);
private int idanimal;
private Raca raca;
private Produtor produtor;
private String nome;
private Integer numbrinco;
private Date datanasc;
private Integer numregistro;
private Character sexo;
private String nomepai;
private String nomemae;
private Set mortalidades = new HashSet(0);
private Set lactacaos = new HashSet(0);
private Set inseminacaos = new HashSet(0);
private Set medicamentos = new HashSet(0);
public Animal() {
}
public Animal(int idanimal, Raca raca, Produtor produtor) {
this.idanimal = idanimal;
this.raca = raca;
this.produtor = produtor;
}
Classe mortalidade:
@Entity
@SequenceGenerator(name="seq_mortalidade", sequenceName="mortalidade_idmortalidade_seq", allocationSize = 1, initialValue = 1)
@Table(name="mortalidade"
,schema="public"
)
public class Mortalidade implements java.io.Serializable {
private int idmortalidade;
private Motivomortalidade motivomortalidade;
private Animal animal;
private Date datamort;
public Mortalidade() {
}