Olá pessoal!
Estou com uma sql e gostaria de utilizar ela com criteria, mas como sou novo no java não estou conseguindo…
Tenho a tabela Proposta, onde mantenho um registro de revisões e na listagem tenho que exibir apenas a revisão mais alta.
SELECT *
FROM Proposta AS t
INNER JOIN
(
SELECT MAX(id) AS id, MAX(revisao) AS revisao
FROM Proposta
GROUP BY numero
) ds
ON
t.id = ds.id
WHERE t.funcionario_id = IFNULL(NULL, t.funcionario_id);
Ops, faltou as classes…
Estou omitindo includes, getters e setter para ficar menor…
@Entity
@Table(name = "Proposta")
public class PropostaVO {
@Id
@GeneratedValue
private int id;
private int numero;
private Date data;
private int revisao;
private int ciclo;
private String referencia;
private String origem;
private String condicaoPagamento;
private String condicaoEntrega;
private String reajustePreco;
private String imposto;
private String validade;
private String garantia;
@Temporal(TemporalType.TIMESTAMP)
@Column(updatable = false)
private Date dataCadastro;
@ManyToOne(fetch = FetchType.EAGER)
private FuncionarioVO funcionario;
@ManyToOne(fetch = FetchType.EAGER)
private ClienteVO cliente;
@ManyToOne(fetch = FetchType.EAGER)
private EmissorVO emissor;
@ManyToOne(fetch = FetchType.EAGER)
private ContatoVO contato;
//Getters and Setters
}
@Entity
@Table(name = "Funcionario")
public class FuncionarioVO {
@Id
@GeneratedValue
private int id;
private String nome;
private String email;
private String telefone;
private String celular;
private String cargo;
private boolean ativo;
private boolean listarTodos;
@Temporal(TemporalType.TIMESTAMP)
@Column(updatable = false)
private Date dataCadastro;
//Getters and Setters
}
@Entity
@Table(name = "Cliente")
public class ClienteVO {
@Id
@GeneratedValue
private int id;
private String nomeFantasia;
private String razaoSocial;
private String cnpj;
private String ie;
private String email;
private String telefone;
private String celular;
private String fax;
private String cep;
private String logradouro;
private String complemento;
private String numero;
private String cidade;
private String bairro;
private String uf;
@Temporal(TemporalType.TIMESTAMP)
@Column(updatable = false)
private Date dataCadastro;
@ManyToOne(fetch = FetchType.EAGER)
private SegmentoVO segmento;
//Getters and Setters
}
@Entity
@Table(name = "Emissor")
public class EmissorVO {
@Id
@GeneratedValue
private int id;
private String nomeFantasia;
private String razaoSocial;
private String siglaProposta;
private String cnpj;
private String ie;
private String email;
private String telefone;
private String celular;
private String fax;
private String cep;
private String logradouro;
private String complemento;
private String numero;
private String cidade;
private String bairro;
private String uf;
@Temporal(TemporalType.TIMESTAMP)
@Column(updatable = false)
private Date dataCadastro;
//Getters and Setters
}
@Entity
@Table(name = "Contato")
public class ContatoVO {
@Id
@GeneratedValue
private int id;
private String nome;
private String email;
private String telefone;
private String celular;
private String departamento;
private String cargo;
@Temporal(TemporalType.TIMESTAMP)
@Column(updatable = false)
private Date dataCadastro;
@ManyToOne(fetch = FetchType.EAGER)
private ClienteVO cliente;
@ManyToOne(fetch = FetchType.EAGER)
private PeriodicidadeVO periodicidade;
//Getters and Setters
}
Obrigado!