Mysql Date/Datetime列和Java持久性

a1e*_*x07 5 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这些值是否正常?谢谢.

Ond*_*žka 7

将JDBC驱动程序的zeroDateTimeBehavior属性设置为convertToNull有什么用处.

请参阅http://ondra.zizka.cz/stranky/programovani/java/index.texy (查找"零DATETIME或TIMESTAMP列的SQLException?使用zeroDateTimeBehavior").

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