BigDecimal.ONE) > 0

Eixistem 2 campos que eu vejo se os valores que estão neles são iguais, caso não seja ele não deixa fazer update ou insert.
Quando eu valido usando o valor 0 ele funciona, eu quero uma margem de 1 real, ai não consigo…

Total
CadastradoTotal

 public void validate(Integer operacao, EntradaNf entidade) throws EntradaNfException {
         if (operacao == INSERIR || operacao == ATUALIZAR) {
            validarTotalItensCadastrado(entidade);
        }
        super.validate(operacao, entidade);
    }

 public void validarTotalItensCadastrado(EntradaNf entradaNf) throws EntradaNfException {
        BigDecimal diff = obterValorTotalCadastrado(entradaNf).subtract(entradaNf.getTotal());
        if (diff.abs().compareTo(BigDecimal.ONE) > 0) {
            throw new EntradaNfException(getMessageFactory().getMessage("view.tela.menu.operacao.entradaItem.totalDiferenteCadastrado"));
        }
      }

 public void validate(Integer operacao, EntradaNf entidade) throws EntradaNfException {
         if (operacao == INSERIR || operacao == ATUALIZAR) {
            validarTotalItensCadastrado(entidade);
        }
        super.validate(operacao, entidade);
    }

 public void validarTotalItensCadastrado(EntradaNf entradaNf) throws EntradaNfException {
        BigDecimal diff = obterValorTotalCadastrado(entradaNf).subtract(entradaNf.getTotal());
        if (diff.abs().compareTo(BigDecimal.ONE) > 1) {
            throw new EntradaNfException(getMessageFactory().getMessage("view.tela.menu.operacao.entradaItem.totalDiferenteCadastrado"));
        }
      }

é fácil, tem q ler a documentação

oque retorna o compareTo? -1,0 e 1, como vc espera algo maior que 1?

Olhando isso… nunca vai ser maior que 1…

vamos lá… se viera -1 no resultado significa que o valor obtido é Menor…
se vier 0 significa que o valor é igual…
e finalmente se vier como resultado 1 significa que o valor é Maior…

logo…

se vc fizer isso…

vai funcionar…