首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有第三实体关系的弹簧后误差

问具有第三实体关系的弹簧后误差
EN

Stack Overflow用户
提问于 2020-05-18 08:49:08
回答 1查看 14关注 0票数 0

我是春天的新人,我想用这个结构来存储考试和试题之间的关系:

代码语言:javascript
复制
@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对象时

代码语言:javascript
复制
{
  "exam": "http://localhost:8080/exams/28",
  "question": "http://localhost:8080/questions/17"
}

我收到一个错误409,消息是:

NULL不允许列\"ID\";

有人能帮我吗?提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-18 09:30:59

这可能是因为@GeneratedValue(strategy = GenerationType.IDENTITY)。

确保在数据库架构ID列中设置为自动递增,因为GenerationType.IDENTITY使用数据库标识列生成值。因此,如果您的列未被设置为自动递增,则会得到此错误。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61865781

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档