java - JPA 实体关系简单示例中出现错误

标签 java mysql spring hibernate jpa

我正在使用注释在 Spring 中进行简单的 JPA 实体关系,但出现错误“com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException:列 'id' 不能为空”; 下面是我的pojos

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity
@Table(name = "STUDENTDB")
public class Student {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private long id;
    private String name;

    public long getId() {
        return id;
    }

    public void setId(long id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

}

映射的类如下所示。

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;

@Entity
public class Marks {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private long sid;
    private int subject1;
    private int subject2;
    private int subject3;

    @ManyToOne(optional=false)
    @JoinColumn(name="id",referencedColumnName="id")
    private Student s;

    public Student getS() {
        return s;
    }

    public void setS(Student s) {
        this.s = s;
    }

    public long getSid() {
        return sid;
    }

    public void setSid(long sid) {
        this.sid = sid;
    }

    public int getSubject1() {
        return subject1;
    }

    public void setSubject1(int subject1) {
        this.subject1 = subject1;
    }

    public int getSubject2() {
        return subject2;
    }

    public void setSubject2(int subject2) {
        this.subject2 = subject2;
    }

    public int getSubject3() {
        return subject3;
    }

    public void setSubject3(int subject3) {
        this.subject3 = subject3;
    }

}

那么有什么可能的解决方案呢?

最佳答案

package com.example;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity
@Table(name = "STUDENTDB")
public class Student {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(nullable=false,updatable=false)
    private long id;
    private String name;

}

关于java - JPA 实体关系简单示例中出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38237828/

相关文章:

java - SPARK 1.4.0 文件未找到信任库异常

mysql - galera 集群的性能低得惊人

mysql - Cloud SQL 数据库无法从 mysql 客户端连接

spring - QueryDsl - 如何使用 maven 创建 Q 类?

java - 在 SQLite 数据库中插入行时出现问题

java - 如何检查字符串是否不等于 java 中的对象或其他字符串值?

java - 用poi写入excel文件

PHP MySQL 插入数据

java - NoSuchBeanDefinitionException 如何初始化 SessionFactory bean?

java - 如何在外部实体上生成 query-dsl Q 类?