Reputation: 21
public class SectionProperties {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long section_id;
@Column( columnDefinition = "bigint default 0")
private Long section_no;
@ManyToOne
@JoinColumn(name="assessment_id")
@OnDelete(action = OnDeleteAction.CASCADE)
private AssesmentProperties foreign_key;
private String section_type;
private int weightage;
private int time;
private int No_of_questions;
//getters and setters
}
this is my model class.There is foreign key from another table AssessmentProperties .now when iam posting the data with postman my data looks like this
"section_type":"hard",
"weightage":2,
"time":2,
"no_of_questions":3,
"foreign_key":{
"assessment_id":1
}
but my input should be looking like this
"section_type":"hard",
"weightage":2,
"time":2,
"no_of_questions":3,
"assessment_id":1
can anyone say me what should i do for this? and by the way this is the controller for post method
@RequestMapping(value="/SectionProperty",method=RequestMethod.POST)
public ResponseEntity<Long> createOrUpdateoptions(@RequestBody SectionProperties model)
{
SectionProperties updated=properties.createOrUpdateSections(model);
return new ResponseEntity<Long>(updated.getSection_id(),new HttpHeaders(),HttpStatus.OK);
}
Upvotes: 0
Views: 3594
Reputation: 1004
Instead of using SectionProperties as @RequestBody
param, make a custom DTO (DataTransferObject) class that will look like this in JSON format:
"section_type":"hard",
"weightage":2,
"time":2,
"no_of_questions":3,
"assessment_id":1
And like this in POJO:
public class SectionPropertiesDTO {
private int assessment_id;
private String section_type;
private int weightage;
private int time;
private int no_of_questions;
//getters and setters
}
Then your method should look like this, note that you will have to change your logic to convert from DTO object into entity and vice versea:
@RequestMapping(value="/SectionProperty",method=RequestMethod.POST)
public ResponseEntity<Long> createOrUpdateoptions(@RequestBody SectionPropertiesDTO model)
{
// TODO: change the createOrUpdateSections to convert from DTO into entity;
SectionProperties updated=properties.createOrUpdateSections(model);
return new ResponseEntity<Long>(updated.getSection_id(),new HttpHeaders(),HttpStatus.OK);
}
Upvotes: 1