问题描述
我在 Dto 里面有 Dto。如何在 Post 请求中传递资源 Url?我想传递已经在数据库中的 drawEvent 但不想在 drawEvent 中创建另一个条目。
{
"serialNumber": "1","firstNumber": "1","secondNumber": "1","thirdNumber": "1","fourthNumber": "1","fifthNumber": "1","sixthNumber": "1","bonusNumber": "1","drawEvent": "/drawEvents/1"
}
这会导致 JSON 解析错误。
这是结果实体
@Entity(name = "results")
@Data
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
public class Result extends AbstractModel{
@NotNull(message = "First Number can't be Empty")
@Min(value = 1,message = "First number should be greater than or equal to 1")
@Max(value = 45,message = "First number should be less than or equal to 45")
private Integer firstNumber;
@NotNull(message = "Second Number can't be Empty")
@Min(value = 1,message = "Second number should be greater than or equal to 1")
@Max(value = 45,message = "Second number should be less than or equal to 45")
private Integer secondNumber;
@NotNull(message = "Third Number can't be Empty")
@Min(value = 1,message = "Third number should be greater than or equal to 1")
@Max(value = 45,message = "Third number should be less than or equal to 45")
private int thirdNumber;
@NotNull(message = "Fourth Number can't be Empty")
@Min(value = 1,message = "Fourth number should be greater than or equal to 1")
@Max(value = 45,message = "Fourth number should be less than or equal to 45")
private int fourthNumber;
@NotNull(message = "Fifth Number can't be Empty")
@Min(value = 1,message = "Fifth number should be greater than or equal to 1")
@Max(value = 45,message = "Fifth number should be less than or equal to 45")
private int fifthNumber;
@NotNull(message = "Sixth Number can't be Empty")
@Min(value = 1,message = "Sixth number should be greater than or equal to 1")
@Max(value = 45,message = "Sixth number should be less than or equal to 45")
private int sixthNumber;
@NotNull(message = "Bonus Number can't be Empty")
@Min(value = 1,message = "Bonus number should be greater than or equal to 1")
@Max(value = 45,message = "Bonus number should be less than or equal to 45")
private int bonusNumber;
@OnetoOne(fetch = FetchType.EAGER,cascade = CascadeType.ALL)
@JoinColumn(nullable = false)
DrawEvent drawEvent;
}
这是票务实体
@Data
@Entity(name = "tickets")
public class Ticket extends Result {
@GeneratedValue(generator = "UUID",strategy = GenerationType.AUTO)
@GenericGenerator(
name = "UUID",strategy = "org.hibernate.id.UUIDGenerator"
)
@PrePersist
protected void onCreate() {
setSerialNumber(UUID.randomUUID());
}
private UUID serialNumber;
@ManyToOne(fetch = FetchType.EAGER,cascade = CascadeType.ALL)
@JoinColumn(name = "draw_event_id")
DrawEvent drawEvent;
@ManyToOne(fetch = FetchType.EAGER,cascade = CascadeType.ALL)
@JoinColumn(name = "user_id")
User user;
}
这是票Dto
@Getter
@Setter
public class TicketDto extends AbstractModel {
private Integer firstNumber;
private Integer secondNumber;
private int thirdNumber;
private int fourthNumber;
private int fifthNumber;
private int sixthNumber;
private int bonusNumber;
DrawEventDto drawEvent;
UserDto user;
}
这是EventDto
@Getter
@Setter
public class DrawEventDto extends AbstractModel {
private String title;
private String imageUrl;
LocalDateTime drawDate;
private Integer noOfTicket;
private BigDecimal estimatedPrize;
}
这是TicketController。
@PostMapping
public ResponseEntity<ResponseMessage<?>> save(@RequestBody TicketDto ticketDto) {
ResponseMessage responseMessage = ticketService.save(ticketDto);
return new ResponseEntity<ResponseMessage<?>>(responseMessage,HttpStatus.CREATED);
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)