Sembra che questo problema sia solo un ostacolo se usi Hibernate per la creazione di schemi. Quindi, se tutto funziona bene dopo aver creato la colonna come timestamp with time zone
su PostgreSQL, vai con quello. Ad ogni modo è una cattiva pratica lasciare che Hibernate generi il tuo schema. Fallo manualmente (o lascia che un DBA lo faccia). Se desideri automatizzare, utilizza uno strumento di migrazione del database come Flyway
o Liquibase
dopo che una persona affidabile ha scritto gli script sql.
Oltre a questo, il requisito "cambia il database domani" sembra davvero fittizio, il funzionamento indipendente dal database è più o meno irrealistico e diventa più difficile scrivere applicazioni più grandi che devono funzionare.
Se hai bisogno di maggiori informazioni sul comportamento di Hibernate / JDBC timestamp, dai un'occhiata a questo bell'articolo a riguardo .