我有一个带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这些值是否正常?
感谢。
答案 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。