Apologies if this is a duplicate of an answered question. I searched in the mailing list archives, Stack Overflow, etc., and didn't find anything.
At the line linked below in TypeInfoCache, it appears that type timestamptz is getting mapped to the type java.sql.Types.TIMESTAMP [1] . It seems like it should be mapped to java.sql.Types.TIMESTAMP_WITH_TIMEZONE.
TIMESTAMP_WITH_TIMEZONE was introduced in Java 8 (2014). Is the mapping of timestamptz to TIMESTAMP intentional for reasons of backwards compatibility?
I found the behavior surprising, and also found a question on Stack Overflow where someone else was surprised [2].