我收到 JSON解析错误:当我尝试保存映射到的Pojo类对象时,无法通过Spring Boot项目从START_OBJECT令牌中反序列化java.util.HashSet
实例与我的另一位Pojo 一对多关系。我不确定我是否在Postman中发送正确格式的JSON。我试图保存定义了Collection元素集的持久类的值。
家长Pojo课堂:
package com.example.demo.model;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.OneToMany;
import javax.persistence.Table;
@Entity
@Table(name = "vendor")
public class Vendor {
@Id
int vendorId;
@Column
String vendorName;
@OneToMany(fetch = FetchType.LAZY,targetEntity = Customer.class,cascade = CascadeType.ALL)
@JoinColumn(name = "vendorId")
Set children;
public int getVendorId() {
return vendorId;
}
public void setVendorId(int vendorId) {
this.vendorId = vendorId;
}
public String getVendorName() {
return vendorName;
}
public void setVendorName(String vendorName) {
this.vendorName = vendorName;
}
public Set getchildren() {
return children;
}
public void setChildren(Set children) {
this.children = children;
}
}
儿童Pojo课堂:
package com.example.demo.model;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import org.hibernate.annotations.GeneratorType;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
@Entity
@Table(name = "customer")
public class Customer {
@Id
@GeneratedValue(strategy= GenerationType.AUTO)
int customerId;
@Column
String customerName;
public int getcustomerId() {
return customerId;
}
public void setCustomerId(int customerId) {
this.customerId = customerId;
}
public String getcustomerName() {
return customerName;
}
public void setCustomerName(String customerName) {
this.customerName = customerName;
}
}
控制器:
package com.example.demo.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import com.example.demo.model.Vendor;
import com.example.demo.service.VendordataSaveService;
@RestController
public class VendorSaveController {
@Autowired
private VendordataSaveService dataSaveService;
@PostMapping("/save")
public void saveVendor(@RequestBody Vendor vendor) {
dataSaveService.saveVendorRecord(vendor);
}
}
服务类别:
package com.example.demo.service;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.example.demo.model.Vendor;
import com.example.demo.repository.VendordataSaveRepository;
@Service
public class VendordataSaveService {
@Autowired
private VendordataSaveRepository repository;
public void saveVendorRecord(Vendor vendor) {
repository.save(vendor);
}
}
存储库类:
package com.example.demo.repository;
import org.springframework.data.jpa.repository.JpaRepository;
import com.example.demo.model.Vendor;
public interface VendordataSaveRepository extends JpaRepository<Vendor,Integer> {
}
我从邮递员发送的JSON格式:
"vendorId" : 101,"vendorName" : "JAIN BOOKS","children" : {
"customerId" : 1,"customerName" : "AMIT"
}
}
我在控制台上收到此错误消息:-
无法读取HTTP消息:org.springframework.http.converter.HttpMessageNotReadableException:JSON解析错误:无法从START_OBJECT令牌中反序列化
java.util.HashSet
实例;嵌套异常是com.fasterxml.jackson.databind.exc.MismatchedInputException:无法从START_OBJECT令牌中反序列化java.util.HashSet
实例 在[来源:(PushbackInputStream);第4行,第15列](通过参考链:com.example.demo.model.Vendor [“ children”])
我需要改进什么?