發生這種異常的因素有可能:
jar包導入不正確或缺少jar包 (hibernate.jar);
直接添加hibernate.jar包。
解決問題的方法永遠不止一個 ---->
如果有jar而且還不行試試另一種方法,
比如原來是:
hibernateTemplate.save(customer); (發生這種錯誤都會指向一條sql語句)
現在改成:
Session session = hibernateTemplate.getSessionFactory().openSession();
if(session !=null)
{
session.save(customer);
}
session.flush();
session.close();
還有一個情況就是向數據庫插入為0的主鍵,那么修改數據庫環境,
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO"
NO_AUTO_VALUE_ON_ZERO影響AUTO_INCREMENT列的處理。一般情況,你可以向該列插入NULL或0生成下一個序列號。NO_AUTO_VALUE_ON_ZERO禁用0,因此只有NULL可以生成下一個序列號。
如果將0保存到表的AUTO_INCREMENT列,該模式會很有用。(不推薦采用該慣例)。例如,如果你用mysqldump轉儲表並重載,MySQL遇到0值一般會生成新的序列號,生成的表的內容與轉儲的表不同。重載轉儲文件前啟用NO_AUTO_VALUE_ON_ZERO可以解決該問題。
本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。