我是春天的新人,我想用这个结构来存储考试和试题之间的关系:
@Entity
@Data
@EqualsAndHashCode(callSuper = true)
public class Exam extends UriEntity<Integer> {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
@NotBlank
@Length(min = 1, max = 256)
private String name;
@OneToMany(mappedBy="exam")
private List<ExamQuestion> exams_questions;
@Entity
@Data
@EqualsAndHashCode(callSuper = true)
public class Question extends UriEntity<Integer> {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
@NotBlank
@Column(unique = true)
private String statement;
@NotBlank
private String answer;
@OneToMany(mappedBy="question")
private List<ExamQuestion> exams_questions;
@Entity
@Data
@EqualsAndHashCode(callSuper = true)
public class ExamQuestion extends UriEntity<Integer> {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
@ManyToOne
@JoinColumn(name = "question_id")
private Question question;
@ManyToOne
@JoinColumn(name = "exam_id")
private Exam exam;当我想用邮递员存储一个新的ExamQuestion对象时
{
"exam": "http://localhost:8080/exams/28",
"question": "http://localhost:8080/questions/17"
}我收到一个错误409,消息是:
NULL不允许列\"ID\";
有人能帮我吗?提前谢谢。
发布于 2020-05-18 09:30:59
这可能是因为@GeneratedValue(strategy = GenerationType.IDENTITY)。
确保在数据库架构ID列中设置为自动递增,因为GenerationType.IDENTITY使用数据库标识列生成值。因此,如果您的列未被设置为自动递增,则会得到此错误。
https://stackoverflow.com/questions/61865781
复制相似问题