Rus*_*lan 3 spring spring-mvc spring-data-jpa spring-boot spring-rest
我是 Spring DataJPA + REST 项目的新手,我正在尝试从具有 OneToOne 单向关系的参考 EmployerType 执行添加新或编辑 Employer。任务很简单,但我被卡住了。当我尝试添加或编辑数据时,出现此错误:
org.springframework.http.converter.HttpMessageNotReadableException:
Could not read document: Can not construct instance of
tr.mis.domain.EmployerType: no String-argument constructor/factory
method to deserialize from String value ('1074') at [Source:
java.io.PushbackInputStream@6d856887; line: 1, column: 609] (through
reference chain: tr.mis.domain.Employer["employerType"]); nested
exception is com.fasterxml.jackson.databind.JsonMappingException: Can
not construct instance of tr.mis.domain.EmployerType: no
String-argument constructor/factory method to deserialize from String
value ('1074')
Run Code Online (Sandbox Code Playgroud)
以下是有关课程的信息。
@Entity
@Table(name = "employer")
public class Employer implements Serializable {
@GenericGenerator(
name = "wikiSequenceGenerator",
strategy = "org.hibernate.id.enhanced.SequenceStyleGenerator",
parameters = {
@Parameter(name = "sequence_name", value = "WIKI_SEQUENCE"),
@Parameter(name = "initial_value", value = "1000"),
@Parameter(name = "increment_size", value = "1")
}
)
@Id
@GeneratedValue(generator = "wikiSequenceGenerator")
private Long employerId;
private String uid;
private String name;
private String address;
private String headName;
//@JsonIgnore
@OneToOne(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
// @PrimaryKeyJoinColumn
@JoinColumn(name = "employer_type_id")
private EmployerType employerType;
//Getters and Setters
Run Code Online (Sandbox Code Playgroud)
雇主类别
@Entity
@Table(name = "employertype")
public class EmployerType {
@GenericGenerator(
name = "wikiSequenceGenerator",
strategy = "org.hibernate.id.enhanced.SequenceStyleGenerator",
parameters = {
@Parameter(name = "sequence_name", value = "WIKI_SEQUENCE"),
@Parameter(name = "initial_value", value = "1000"),
@Parameter(name = "increment_size", value = "1")
}
)
@Id
@GeneratedValue(generator = "wikiSequenceGenerator")
private Long employerTypeId;
private String uid;
private String employerTypeName;
//Getters and Setters
Run Code Online (Sandbox Code Playgroud)
休息控制器
@RequestMapping(value = "/employers", method = RequestMethod.PUT)
public Employer updateEmployer(@RequestBody Employer employer) {
return employerRepository.save(employer);
}
Run Code Online (Sandbox Code Playgroud)
我通过在 EmployerType 类中添加 String 构造函数解决了这个问题。
public EmployerType(String employerTypeName) {
// TODO Auto-generated constructor stub
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6496 次 |
| 最近记录: |