org.hibernate.id.IdentifierGenerationException: ids for this class must be manually assigned before calling save(): po.UserEntity
错误提示是说,id的生成错误,在保存之前,需先生成。
方法一:
user.setId("09");
强行声明。。。。。。
方法二:
xml配置:主键处添加
你要操作的数据表中的id(即主键)的类型设置成了“自动增长类型”,而在你的
hibernate.cfg.xml中,id的生成方式是assigned,即
<id name="id" type="integer">
<column name="id" />
<generator class="assigned" />
</id>
这种搭配是矛盾的!
主键的assigned生成方式由程序自动生成表的主键,即在你的测试程序中要调用setId()方法,且必
须在调用save()前调用(或者说在调用save()前必须指定id,其实就是说,主键值不能为空!)。
把主键的生成方式改为native,它的特征是能够根据底层数据库自动选择主键生成方式。
原文链接:https://blog.youkuaiyun.com/yoyofish0001/article/details/84446110
修改后报错
<id name="id" column="id" >
<generator class="native" />
</id>
ERROR: Field 'id' doesn't have a default value
产生的原因:主要来自于mysql数据库的自增主键,id不能是默认的值,
也就是说我们没有进行自增主键的设置。
只需要连接至自己的mysql数据库将主键PRIMARY KEY,设置为自增值即可。
alter table 表名 change id id int AUTO_INCREMENT
添加此语句在JDBC 解决问题