java字段manytone没有默认值hibernate

qxsslcnc  于 2021-06-29  发布在  Java
关注(0)|答案(1)|浏览(353)

我创建了一个名为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

有什么想法吗?
非常感谢。

fafcakar

fafcakar1#

您的字段“subject”不为null(nullable=false),因此当您创建一个新人员时,必须为其定义一个课程。要使课程对个人是可选的,您可以尝试以下方法(nullable=true)。这取决于你的生意!
注意:字段的第一个字母最好使用小写(这是命名约定)

相关问题