日期:2014-05-20  浏览次数:20730 次

Myeclipse+hibernate+mysql :Field 'id' doesn't have a default value
myeclipse下建好工程,添加hibernate   capabality.   数据库是mysql。对数据库中一个表反向工程,生成了所需要的类文件和hbm.xml,   DAO类。primary   key选的是native

表很简单,create   table   employee(id   int   primary   key,   name   varchar(20),   password   varchar(20))

如下测试
Employee     account   =   new   Employee();
account.setPassword(password);
account.setUsername(username);
EmployeeDAO   dao   =   new   EmployeeDAO();
tr   =   dao.getSession().beginTransaction();
dao.save(account);
tr.commit();
dao.getSession().close();


老提示Field   'id '   doesn 't   have   a   default   value     而失败。  
请问这是什么原因。麻烦大家帮我解决下

------解决方案--------------------
关注
------解决方案--------------------
你的id字段没有定义默认值,而你插入的时候也没给值,当然不行

把你的表删掉,重新创建
create table employee(id int auto_incremnet primary key, name varchar(20), password varchar(20))
------解决方案--------------------
因為你的id的問題。
把id設為自動增加。

或讓id可以輸入NULL
------解决方案--------------------
一般是你给的id字段类型,无法自增。你是不是用的varchar做的主键