Como faço para comparar dois campos, exemplo abaixo:
O método abaixo funciona, mas o que compara “maior” > não funciona!
if (veiculo.getDataVenda() == (veiculo.getDataCompra())){
validator.add(new ValidationMessage(
"Data da Venda não pode ser maior que a Data da compra.", "veiculo.datas"));
“maior” >
if (veiculo.getDataVenda() > (veiculo.getDataCompra())){
validator.add(new ValidationMessage(
"Data da Venda não pode ser maior que a Data da compra.", "veiculo.datas"));
Só um adendo muito importante, o argumento do método não pode ser nulo, caso seja, irá gerar um NullPointerException, mas um simples if resolve isso
Veja se resolve sua necessidade:
int result = 0;
if(veiculo.getDataVenda() != null && veiculo.getDataCompra != null)
result = veiculo.getDataVenda().compareTo(veiculo.getDataCompra);
E de acordo com a interface Comparable e a documentação desse método: the value 0 if the argument Date is equal to this Date; a value less than 0 if this Date is before the Date argument; and a value greater than 0 if this Date is after the Date argument.
Basta pegar o retorno e tratar como quiser
if (veiculo.getDataCompra() != null && veiculo.getDataVenda() != null &&
(veiculo.getDataVenda().before(veiculo.getDataCompra()))){
validator.add(new ValidationMessage(
"A Data da Compra não pode ser maior que a Data da Venda.", "veiculo.datas"));
}