Axios Post的外键为int



我有一个具有以下规格的项目:

数据库:

Table: User
Columns: user_id, username, password
Table: Ticket
Columns: ticket_id, ticketname, ... , user_id

所以Ticket表中的user_id是一个外键。

现在,我正在尝试做一个像这样的axios POST;

insert(ticket) {
return axios
.post(API_URL + 'insertTicket', {
subject: ticket.subject,
issue: ticket.issue,
company: ticket.company,
date: datetime,
user: JSON.parse(localStorage.getItem('user'))["user"],
}
,{headers: authHeader() })
.then(response => {
return response.data;
});
}

这是我的票务实体:

@Data
@AllArgsConstructor
@NoArgsConstructor
@Getter
@Setter
@Entity
@Table(name = "tickets")
public class Ticket {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "tickets_id")
private int id;
@Column(name = "tickets_status")                        // 0 = geschlossen, 1 = offen, 2 = in Bearbeitung, 3 = geloescht
private int status;
@Column(name = "tickets_subject")
private String subject;
@Column(name = "tickets_issue")
private String issue;
@Column(name = "tickets_adddescription")
private String adddescription;
@Column(name = "tickets_steps")
private String steps;
@Column(name = "tickets_date")
private String date;
@Column(name = "tickets_company")
private String company;
@ManyToOne
private User users;
public Ticket(int status, String subject, String issue, String adddescription, String steps, String date, String company, User users) {
this.status = status;
this.subject = subject;
this.issue = issue;
this.adddescription = adddescription;
this.steps = steps;
this.date = date;
this.company = company;
this.users = users;
}
}

出现了这样一个问题:在数据库中,user_id是int,但在Java代码中,它是Entity:user的类型。我如何才能发布从JSON中获得的用户id到Tickets表?

axios有效载荷的主体:

{
subject: ticket.subject,
issue: ticket.issue,
company: ticket.company,
date: datetime,
user: JSON.parse(localStorage.getItem('user'))["user"],
}

具有道具名称subject, issue, company, date, user
这些与您在票证实体中的道具名称不直接匹配例如(name = "tickets_id")

我建议在用vuejs编写axios POST之前使用Postman测试它。运行您的tickets API,在将其放入vuejs和axios之前,为您的POST获取正确的道具名称和标题。

最新更新