【问题标题】:@PostMaping insert null in dbd@PostMaping 在 dbd 中插入 null
【发布时间】:2021-12-17 16:16:57
【问题描述】:

我正在做一个休息应用程序,我在使用@PostMaping 时遇到问题 我有 2 个具有第一个 TblEmployees 模型的类和 2 个 TblDepartments 类,它们在外键 =“dbID”上连接

当我插入时:

 {
     "empName": "days",
     "empActive": 0,
     "dbID": 15,
     "dep_name": "sso"
 }

给出错误 SQL 错误:1452

这是我的代码:

TblEmployees має поля empName, empActive,dbID
TblEmployees має поля dbID, dep_name
EmployessServise

    public TblEmployees add_Employees(TblEmployees tblEmployees){
    return  repo.save(tblEmployees);

EmployesController

@PostMapping("/add_Emp")
public TblEmployees add_emp(@RequestBody TblEmployees tblEmployees){
    return  service.add_Employees(tblEmployees);

@Entity
@Table(name = "employees")
public class TblEmployees {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private int emp_id;
    private String empName;
    private Boolean empActive;
    private Integer dbID;
    @ManyToOne
    @JoinColumn(name = "dbid",insertable = false,updatable = false)
    private TblDepartments departments;
---getter setter

@Entity
@Table(name = "departments")
public class TblDepartments {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "dbID")
    private Integer dbID;
    private String dep_name;


    public TblDepartments(){
    }

---getter setter

【问题讨论】:

  • 我假设您使用的是 MySQL 数据库,那么错误代码 1452 表示 无法添加或更新子行:外键约束失败。所以请确保dbID 确实存在于另一个表中。
  • dbID 在两个表中

标签: java json spring rest


【解决方案1】:

您的 SQL 错误代码显示您在请求正文中发送的外键(即 dbID)在 departments 表中不存在。

仔细检查部门表。确保您发送正确的外键(部门表中存在的 dbId-One)。 您可以找到有关错误here的更多信息

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-11
    • 1970-01-01
    相关资源
    最近更新 更多