【问题标题】:field ManyToOne doesn't have default value HIBERNATE字段 ManyToOne 没有默认值 HIBERNATE
【发布时间】:2021-03-29 08:01:46
【问题描述】:

我创建了一个名为 books 的 java 类,其中一个字段引用多对一的另一个名为 Course 的类的 Id。

@javax.persistence.Id
    @Column(name="Id")
    @GeneratedValue(strategy= GenerationType.AUTO)
    private int Id;
    
    @Column(name= "Title", length= 128, nullable = false, columnDefinition = "VARCHAR(60)")
    private String Title;
    @Column(name= "Year", length= 128, nullable = false, columnDefinition = "VARCHAR(60)")
    private String Year;
    
    @ManyToOne
    @JoinColumn(name="Course_id",insertable=false, updatable=false, nullable=false,columnDefinition = "int default 1")
    private Course Subject;
    public int getId() {
        return Id;
    }
    

课程班

    private int id;
    private Person person;
    private String name;
    private Set persons = new HashSet(0);

我收到此错误:

dic. 18, 2020 5:44:46 P. M. org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions
ERROR: Field 'Subject' doesn't have a default value
dic. 18, 2020 5:44:46 P. M. org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions
ERROR: Field 'Subject' doesn't have a default value

有什么想法吗?

非常感谢。

【问题讨论】:

    标签: java mysql hibernate


    【解决方案1】:

    您的“主题”字段不为空(nullable=false),因此当您创建新人时,您必须为其定义课程。为了使课程对人来说是可选的,你可以试试这个(nullable=true)。这取决于您的业务!

    注意:字段的第一个字母最好使用小写(这是命名约定)

    【讨论】:

      猜你喜欢
      • 2014-02-10
      • 1970-01-01
      • 2016-03-22
      • 1970-01-01
      • 2020-01-02
      • 1970-01-01
      • 2012-09-25
      • 2018-03-19
      • 2014-11-09
      相关资源
      最近更新 更多