Hibernate连接数据库,插入数据出现Column 'X' cannot accept a NULL value.问题

使用Hibernate连接derby数据库,其中student表中S_id是表的主键,以及takes等表的外键。
在执行插入命令时提示如下:

img


其中student/hbm/xml文件配置如下:

img

student操作的工具类:

img

解决方法1
在数据库中把S_ID设置成自动生成
例:
ALTER TABLE student DROP COLUMN s_id;
ALTER TABLE student add s_id int identity(1,1);

解决方法2
hbm文件中,把S_ID当做普通的列来配置,不用主键生成策略等。

你数据库定义的是大写的,代码里映射写的是小写,别的字段也是,检查下,都改成和数据库一样

ALTER TABLE student DROP COLUMN s_id;
ALTER TABLE student add s_id int identity(1,1);

代码不全,最好是贴全了代码,截图带着行号。
你的这个S_id,提示不能为空,就你现在贴出来的代码,这个S_id都有值,你提到过这个S_id还是个外键,表设计里面把外键删掉。不建议在数据库里面添加外键约束,要想维护主外键关系,建议通过数据进行外键关联。