Devi usare java.sql.Timestamp non java.sql.Date
java.util.Date è solo per colonne di data "reali" e rimuoverà la parte temporale. Se è necessario memorizzare la data e ora devi usare java.sql.Timestamp .
E ovviamente dovrai usare setTimestamp() invece di setDate() anche.