Renato,
Resolvi fazer um teste aqui só com JDBC. O erro acontece mesmo assim!
Criei uma table simples:
create table teste_hora (
hora_str varchar(8),
hora time
);
E usei a versão 6.0.6 do driver do MySQL.
Fiz esse teste simples:
public class Teste {
public static void main(String[] args) throws SQLException {
LocalTime localTime = LocalTime.of(8, 45);
String sql = " insert into teste_hora ( hora, hora_str ) values (?, ?) ";
try(Connection c = DriverManager.getConnection("jdbc:mysql://localhost/teste", "root", "");
PreparedStatement ps = c.prepareStatement(sql)) {
ps.setTime(1, Time.valueOf(localTime));
ps.setString(2, localTime.toString());
ps.execute();
};
}
}
Ao fazer o select * from teste.teste_hora
, obtive:
+----------+----------+
| hora_str | hora |
+----------+----------+
| 08:45 | 09:45:00 |
+----------+----------+
1 row in set (0,00 sec)
Fazendo o downgrade para a versão 5.1.44 e rodando o mesmo teste e select, obtive:
+----------+----------+
| hora_str | hora |
+----------+----------+
| 08:45 | 09:45:00 |
| 08:45 | 08:45:00 |
+----------+----------+
2 rows in set (0,00 sec)
Seria interessante você subir um pouco a versão até descobrir qual deu erro.
Se descobrir, poste aqui! ;)