Nová podpora rozhraní Date &Date API s JDBC je definována v JEP 170:JDBC 4.2 . Postgres stránka ke stažení kompatibilita s novými funkcemi JDBC 4.2 začíná až od verze Postgres 9.4, takže se při používání nového API se staršími ovladači objeví některé problémy s kompatibilitou.
Dokonce i setObject(1, new java.util.Date());
je odmítnuto stejným omezením v Postgres (které MySQL šťastně přijímá), nejen nové API jako LocalDate
. Některá chování budou závislá na implementaci, takže pouze java.sql.*
je do značné míry zaručeno (zhruba řečeno).
Pokud jde o framework Spring JDBC, myslím, že přepsání jeho chování funguje tak, aby se to obešlo, aniž byste toho později litovali. Navrhuji trochu jiný přístup k tomu, co jste již udělali:
- Rozšiřte
BeanPropertySqlParameterSource
chování pro práci s novým datem a časem API a dalšími třídami spojenými se vstupem parametrů, pokud je to potřeba (neznám toto Spring API). - Extrahujte již přepsané chování
BeanPropertyRowMapper
do jiné třídy pro operace načítání. - Všechno to zabalte továrním vzorem nebo užitnou třídou, abyste se na to nemuseli znovu dívat.
Tímto způsobem vylepšíte budoucí možnosti refaktoringu, pokud bude API podporováno, a snížíte množství kódu potřebného během vývoje.
Můžete se také podívat na některé DAO přístupy.