Campo data do mysql retorna uma data menor

Ola estou executando um select no banco de dados e filtranto por um campo data.

select * from tabela where dia=‘2019-12-17’
o resultado no query browser sao todos os registros com a data de ontem.
Ai quando esse valor chega em tela a data que esta gravada como dia 17 aparece dia 16.

Estou usando JdbcTemplate. E la no resultset quando faco um getDate ja aparece com um dia a menos.

@override
public NotaFiscalEmitidaDTO mapRow(ResultSet rs, int rowNum) throws SQLException {
    NotaFiscalEmitidaDTO nota = new NotaFiscalEmitidaDTO();
	nota.setId(rs.getLong("idvenda_nfce"));
	nota.setLoja(rs.getLong("loja"));
	nota.setSerie(rs.getString("serie"));
	nota.setNumero(rs.getLong("num_doc"));
	nota.setChaveNfe(rs.getString("chv_nfce"));
    /* tanto faz colocar assim ou fazer apenas o getDate()
     o resultado ja vem com um dia a menos.*/
	nota.setDataEmissao(rs.getDate("dt_doc").toLocalDate());
	nota.setExisteXML(rs.getBoolean("arquivado"));
	return nota;
}

Alguem ja passou por isso?

Tem certeza que essa query funciona? O nome da tabela é tabela e quere é o quê?

Se o nome da tabela for tabela:

SELECT * FROM Tabela WHERE tabela.dia = '2019-12-17';

Se for quere:

SELECT * FROM Quere WHERE quere.dia = '2019-12-17';

Acho que voce nao entendeu, eu nao estou em duvida em como fazer uma consulta no banco de dados. Isso ai foi um exemplo. A consulta funciona para filtrar os dados de um dia. Mas quando eu mostro dos dados da consulta, a data aparece com um dia a menos quando eu faco

resultSet.getDate("dia").toLocalDate();
//  ou
resultSet.getDate("dia");

sendo assim, minha duvida é porque no banco de dados esta um dia, e no resultado da consulta usando SpringJdbcTemplate aparece um dia menor.

fiz uma alteracao na classe principal do projeto

@SpringBootApplication
public class SopaApplication {

private static ApplicationContext APPLICATION_CONTEXT;

public static void main(String[] args) {
	APPLICATION_CONTEXT = SpringApplication.run(SopaApplication.class, args);
}

public static <T> T getBean(Class<T> requiredType) {
	return APPLICATION_CONTEXT.getBean(requiredType);
}

@PostConstruct
public void init() {
    //adicionado esse metodo para definir um timezone, corrigindo a hora
   //  LocalDateTime.now()
	TimeZone.setDefault(TimeZone.getTimeZone("America/Recife"));
}

na na string de conexão com o banco de dados foi feito essa alteração tambem colocando o timezone, assim agora a data retornada vem com o dia certo:

spring.datasource.url=jdbc:mysql://localhost:3306/myDB?useTimezone=true&serverTimezone=America/Recife&useSSL=false
1 curtida