angular - 为什么角度在spring boot api中的日期变量中发送空值
问题描述
我正在将表单数据从 Angular 发送到 Spring Boot 以保存在 MySQL 中。
表单很少有带文本的字段,一个字段是日期(输入类型=日期)=>引导
比尔模型
export class Bill{
billno:string
date:Date
vendorname:string
amount:number
description:string
}
用于向弹簧发送数据的 Angular 服务
onSubmit(){
this.addBillForm.markAllAsTouched();
if(this.addBillForm.invalid){
console.log("Form is Invalid");
return false;
}
this.datasaveService.addbill(this.addBillForm.value)
.subscribe(
res=>{
console.log("Response : "+res);
});
}
addbill(bill:Bill):Observable<any>{
return this.http.post<Bill>(this.addbillurl,bill);
}
账单实体类:
@Entity
@Table(name="bill_details")
public class Bills {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name="bill_id")
private int bill_id;
@Column(name="bill_no")
private String billno;
@Temporal(value=TemporalType.DATE)
@Column(name="bill_date")
private Date billdate;
@Column(name="bill_amt")
private int amount;
@Column(name="bill_description")
private String description;
@Column(name="vendor_id")
private long vendor_id;
public Bills() {
}
public Bills(String billno, Date billdate, int amount, String description, long vendor_id) {
super();
this.billno = billno;
this.billdate = billdate;
this.amount = amount;
this.description = description;
this.vendor_id = vendor_id;
}
public String getBillno() {
return billno;
}
public void setBillno(String billno) {
this.billno = billno;
}
public Date getBilldate() {
return billdate;
}
public void setBilldate(Date billdate) {
this.billdate = billdate;
}
public int getAmount() {
return amount;
}
public void setAmount(int amount) {
this.amount = amount;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public long getBill_id() {
return bill_id;
}
public void setBill_id(int bill_id) {
this.bill_id = bill_id;
}
public long getVendor_id() {
return vendor_id;
}
@Override
public String toString() {
return "Bills [bill_id=" + bill_id + ", billno=" + billno + ", billdate=" + billdate + ", amount=" + amount
+ ", description=" + description + ", vendor_id=" + vendor_id + "]";
}
}
Spring Controller(仅因为服务和存储库正确而证明控制器)
@PostMapping("/addbill")
public Bills addBill(@RequestBody Bills thebill ) {
System.out.println("Date : "+thebill.getBilldate());
thebill.setBill_id(0);
thebillservice.save(thebill);
return thebill;
}
在请求正文中收到打印帐单对象时:
账单对象:账单 [bill_id=0, billno=100, billdate=null, amount=5000, description=Buy Books, vendor_id=0]
运行后我收到以下错误消息:
java.sql.SQLIntegrityConstraintViolationException:列'bill_date'不能为空
账单实体中的账单日期列是 Date 类型。
同样的方式我正在保存运行良好的供应商数据,但唯一的问题是没有要保存的日期。
有人可以帮助我为什么我得到日期属性的空值。
解决方案
您的实体包含一个字段
billdate
但是您通过 Angular 发送的文档包含一个名为
date
那么Spring应该如何做两者之间的映射呢?您可以更改 Angular 以将字段发送为
billdate
或者您在服务器上添加一个映射,该映射读取具有名称的字段
date
推荐阅读
- javascript - 使用输入和 javascript 添加一些标签后,从 html 页面下载图像
- r - 基于多个时间段计算列的平均值
- python - 检查一个df中的字符串是否存在于pandas中的另一个df中
- node.js - Axios - 防止在外部 api 调用上发送 JWT 令牌
- php - 尝试使用 php mail() 和 nginx 从我的服务器使用 laravel 发送邮件后出现错误 504
- javascript - 类型不可分配给类型 | 同时学习打字稿和故事书
- javascript - 向组件 Vue.js 中的 nabar 模态添加一个类
- xml - 将“翻译”和“子字符串”表达式连接在一起
- python - csv评论中的python关键字搜索
- python - 如何打印 Scrapy 发送的请求标头?