Mysql, driver JDBC e a propiedade zeroDateTimeBehavior

Traballando con IDEs que empregan drivers JDBC para conectarse a MySQL e editar dende o propio IDE, atopeime co seguinte problema. As táboas con campos de tipo DateTime, que non teñen valor establecido, por defecto gárdanse co valor por defecto "0000-00-00 00:00:00". Este valor, ao ser tratado polo driver JDBC, provoca unha excepción e que nalgún caso se peche o editor.

Para solventar este problema, basta con indicarlle ao driver que trate ás datas "zeroDateTime" como se fosen valores nulos. Isto pódese establecer na cadea de conexión JDBC, por exemplo:

jdbc:mysql://localhost:3306/databaseName?zeroDateTimeBehavior=convertToNull

 

Este problema tamén aparece ao traballar con Hibernate. A solución pasa por indicar na configuración a seguinte propiedade no ficheiro hibernate.cfg.xml:

<property name="hibernate.connection.zeroDateTimeBehavior">convertToNull</property>
Última actualización 2013-05-30
1:49 AM (Europe/Madrid)
Data de creación 2013-05-30
1:47 AM (Europe/Madrid)
Solucionando problemas con driver JDBC/MySQL en campos tipo data e con valor por defecto "0000-00-00 00:00:00".
mysql jdbc java database

Relacionados