Javadoc pro ResultSet.getObject() nařizuje, že typ JDBC by měl být mapován na typ Java, jak je předepsáno specifikací JDBC (TIMESTAMP -> java.sqlTimestmp):
Tato metoda vrátí hodnotu daného sloupce jako Javaobject. Typ objektu Java bude výchozí typ objektu Java odpovídající typu SQL ve sloupci podle předdefinovaných typů mapování specifikovaných ve specifikaci JDBC.
Jak jste si všimli, ovladač Oracle ve výchozím nastavení není kompatibilní se standardem a používá oracle.sql.TIMESTAMP místo toho (což nerozšiřuje java.sql.Timestamp ). Dobrou zprávou je, že soulad s JDBC můžete vynutit nastavením oracle.jdbc.J2EE13Compliant vlastnost systému na true během spouštění vm:
java -Doracle.jdbc.J2EE13Compliant=true YourApplication
nebo programově
System.getProperties().setProperty("oracle.jdbc.J2EE13Compliant", "true")
Jakmile to uděláte, getResult() vrátí instance java.sql.Timestamp podle očekávání.
Další podrobnosti naleznete v příslušné části dokumentace Oracle JDBC Driver Documentation, která popisuje několik způsobů nastavení oracle.jdbc.J2EE13Compliant.