Você precisa usar
java.sql.Timestamp não java.sql.Date java.util.Date é apenas para colunas de data "reais" e removerá a parte do tempo. Se você precisar armazenar a data e tempo você tem que usar java.sql.Timestamp . Do Javadocs :
E é claro que você precisará usar
setTimestamp() em vez de setDate() também.