O novo suporte da API Date &Date com JDBC é definido por JEP 170:JDBC 4.2 . Postgres página de download a compatibilidade com os novos recursos do JDBC 4.2 só começa a partir da versão 9.4 do Postgres, então alguns desafios de compatibilidade aparecerão usando a nova API com drivers mais antigos.
Mesmo
setObject(1, new java.util.Date());
é rejeitado pela mesma restrição no Postgres (que é bem aceito pelo MySQL), não apenas a nova API como LocalDate
. Alguns comportamentos serão dependentes da implementação, portanto, apenas java.sql.*
é praticamente garantido (grosseiramente falando). Quanto ao framework Spring JDBC, acho que substituir seu comportamento funciona para contorná-lo sem se arrepender depois. Sugiro uma abordagem um pouco diferente para o que você já fez:
- Estender
BeanPropertySqlParameterSource
comportamento para trabalhar com a nova API de data e hora e outras classes associadas à entrada de parâmetros, se necessário (não estou familiarizado com essa API do Spring). - Extraia o comportamento já modificado de
BeanPropertyRowMapper
para outra classe para buscar operações. - Encerre tudo com um padrão de fábrica ou classe de utilitário para que você não precise olhar novamente.
Dessa forma, você aprimora os recursos de refatoração futuros se a API for suportada e reduz a quantidade de código necessária durante o desenvolvimento.
Você também pode ver alguns DAO abordagens.