2010-01-15 22 views
5

Varsayılan olarak '0000-00-00' olan DATE sütununa sahip bir Mysql tablom var. Örneğin, em.find(MyTable.class,pk_value); 'u aramaya çalışırsam ve varsayılan tarih değeri '0000-00-00' olan veritabanında bir kayıt olması durumunda bir istisna atılır ( "java.sql.SQLException: Değer ... java.sql.Date olarak temsil edilir. Aynı hata, '0000-00-00 00:00:00' varsayılanı olan DateTime sütunları için de olur.
EntityManager'a bu değerlerin iyi olduğunu bildirmenin bir yolu var mı? Teşekkürler. yardımcı olur neMysql Tarih/Datetime sütunları ve Java kalıcılığı

cevap

7

convertToNull JDBC sürücü zeroDateTimeBehavior özelliğini ayardır.

http://ondra.zizka.cz/stranky/programovani/java/index.texy (sıfır DATETIME veya TIMESTAMP sütun için SQLException" aramaya bakın? Kullanım zeroDateTimeBehavior ").

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

0

Nasıl SIFIR null büyük değiştirme hakkında.

+0

Eminim işe yarayacaktır, ancak birçok yan etkiye neden olabilir, bu yüzden tek çözüm olmadığı sürece bunu yapmayı tercih ederim. – a1ex07

1

zeroDateTimeBehavior=convertToNull özelliğini ayarlayarak bu problemi önleyebiliriz. Detaylar için lütfen this link'a bakın.