Coloque seu código sempre dentro das tags Code, pra melhorar a leitura.
[ CODE ]
Seu código vai aqui
[/ CODE ]
Vc está fazendo errado. Não é pra mudar o indice (de 4 pra 5). é pra mudar só o valor que vc está setando.
o certo seria
if(parametroDTO.getDataVencimentoParametroPromocional()==null){
preparedStatement.setNull(4,java.sql.Types.DATE);
}else{
preparedStatement.setDate(4,newjava.sql.Date(parametroDTO.getDataVencimentoParametroPromocional())); //isso não vai funcionar
}
Qual o tipo de dado desse dataVencimentoParametroPromocional ? o construtor de Date só recebe long e os valores da data, veja aqui