首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >无法使用@OneToMany Spring boot插入数据

无法使用@OneToMany Spring boot插入数据
EN

Stack Overflow用户
提问于 2018-10-09 01:49:29
回答 1查看 141关注 0票数 1

我正在尝试使用@OneToMany映射插入带有列表的员工记录。

实体类Employee:

@Entity
@Table(name = "employee")
public class Employee {

    @Id
    @Column(name = "employee_id")
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Integer employeeId;

    @Column(name = "employee_name")
    private String employeeName;

    @OneToMany(mappedBy = "employee", cascade = CascadeType.ALL, fetch = FetchType.EAGER)
    @JsonIgnoreProperties(allowSetters = true, value = { "employee" })
    private List<EmployeePayroll> employeePayroll;

}

实体类EmployeePayroll:

@Entity
@Table(name = "EmployeeSalary")
public class EmployeePayroll {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private long id;
    @Column(nullable = false)
    private long salary;
    @Temporal(TemporalType.DATE)
    private Date fromDate;
    @Temporal(TemporalType.DATE)
    private Date toDate;
    @ManyToOne(cascade = CascadeType.ALL)
    @JoinColumn(name = "employee_id", referencedColumnName = "employee_id")
    private Employee employee;

}

请求正文:

{
    "employeeName":"krishna",
    "employeePayroll":[
        {
            "salary":200,
            "fromDate":"2015-01-01",
            "toDate":"2017-02-02"
        }
    ]   
}

服务方法:

public Integer createEmployee(Employee employee) {
    Employee savedEmployee = employeeRepository.save(employee);

    return savedEmployee.getEmployeeId();
}

当我尝试调用该接口时,我得到了org.springframework.dao.DataIntegrityViolationException.

could not execute statement; SQL [n/a]; constraint [null]; nested exception is org.hibernate.exception.ConstraintViolationException: could not execute statement

MYSQL日志:

Query   insert into employee (employee_name) values ('krishna')
Query   insert into employee_salary (employee_id, from_date, salary, to_date) values (null, '2015-01-01', 200, '2017-02-02')

在插入Employee的post时,employee_id (Employee)值似乎未设置为EmployeePayroll实体。

如何解决这个问题?

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

https://stackoverflow.com/questions/52707624

复制
相关文章

相似问题

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