Dei uma pesquisada pelo código 25P02, e parece que esse erro é causado quando outras consultas executadas na mesma transação deram erro. Pode parecer meio vago, mas está indicando que o problema pode ser em outra parte do fluxo que vc está executando.
Sobre o código de erro:
25P02 - IN FAILED SQL TRANSACTION - in_failed_sql_transaction
A mensagem erro diz exatamente qual é o problema. Estás a passar o campo como varchar (provavelmente com setString()) quando deveria ser um date (setDate()).