org.hibernate.exception.ConstraintViolationException: could not insert
报错原因: generator id设置问题
hibernate的映射文件bean.hbm.xml是跟库表一一对应的,如果库表中存在主键,需要自动生成就用native,有时需要在我们insert时就给他赋值,用assigned。
example:
如果是要让他自动生成的话用如下:
<id name="id" type="java.lang.Integer">
<column name="ID" />
<generator class="native"></generator>
</id>
insert时需要为主键赋值如下:
<id name="id" type="java.lang.String">
<column name="ID" />
<generator class="assigned"></generator>
</id>
因为采用了native的方法,底层数据库会自动生成一个long,short或者是int,如果ID设计的是用String,所以数据库无法插入的,所以如果你的数据库的ID设计的是用String型的,最好是用assinged.