出现这种问题一般有这几种情况(本人亲身经历过,验证有效):
1、你保存的数据对象的主键id没有值。在数据库中,主键的值是不能为空的,所以要保证id主键有值,而且是唯一值;
2、如果你用的是Oracle,建议你见一个自动增长的序列表,然后再该对象的映射关系表,
如student.hbm.xml设置id映射时应该像这样:
<id name="id" column="id" type="java.lang.Long">
<generator class="sequence">
<param name="sequence">seq_student_id
</param>
</generator>
</id>