问题标签:
hibernate、@ManyToMany 、主键
抛出异常:
ERROR: Field ‘scId’ doesn’t have a default value
问题描述:
有Student,Subject,Score 三个实体类,表示学生、科目、分数,
其中Student与Subject采用ManyToMany关系,生成表score,
而Score实体类又分别与student和subject成ManyToMany关系,且有自己的主键scId。具体代码参考下文。
在往数据库中添加score时,抛出异常ERROR: Field 'scId' doesn't have a default value
。
问题原因:
代码的原意是score表以自己的scId为主键,然而hibernate在生成score表时会以studentId和subjectId为主键 ,导致scId不能作为主键自动生成,因而抛出ERROR: Field 'scId' doesn't have a default value
异常。
解决办法:
手动建 score表,再执行程序。
建表SQL:
DROP