Mysql Date / Datetime列和Java持久性

时间:2010-01-15 21:02:31

标签: java mysql persistence

我有一个带DATE列的Mysql表,默认为'0000-00-00'。例如,如果我试着打电话 em.find(MyTable.class,pk_value); 它恰好是数据库中的记录,默认日期值为'0000-00-00',抛出异常( “java.sql.SQLException:Value ...不能表示为java.sql.Date”。对于默认情况为“0000-00-00 00:00:00”的DateTime列,会发生相同的错误 有没有办法告诉EntityManager这些值是否正常? 感谢。

3 个答案:

答案 0 :(得分:7)

将JDBC驱动程序的zeroDateTimeBehavior属性设置为convertToNull会有什么帮助。

参见http://ondra.zizka.cz/stranky/programovani/java/index.texy (查找“DATETIME或TIMESTAMP列的SQLException?使用zeroDateTimeBehavior”)。

jdbc:mysql://localhost/test?zeroDateTimeBehavior=convertToNull

答案 1 :(得分:1)

通过设置zeroDateTimeBehavior=convertToNull属性,我们可以避免此问题。有关详细信息,请查看this link

答案 2 :(得分:0)

如何将ZERO日期更改为null。