【发布时间】:2021-04-24 23:32:23
【问题描述】:
我有一个带有一些默认列值的 MySQL 表和 RestController。 当我 POST 到 /orders 端点时,我发送一个 JSON 对象,我得到一个响应,其中包含我发送的信息 + MySQL 条目的自动生成的 ID。
如何使请求返回已保存在数据库中的完整条目,包括默认列值?我知道,我在响应中获得的 ID,我可以使用它发出 GET 请求以检索所有数据,但我不想发出新请求。
MySQL 订单表
`ID` int NOT NULL AUTO_INCREMENT,
`order_date` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
`delivery_date` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
订单模型
@Entity
@Table(name="orders")
@Getter @Setter @DynamicUpdate @DynamicInsert
public class OrderModel {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name="ID")
private Integer id;
@Temporal(TemporalType.TIMESTAMP)
@Column(name="order_date")
Date orderDate;
@Temporal(TemporalType.TIMESTAMP)
@Column(name="delivery_date")
Date deliveryDate;
protected OrderModel() {}
}
弹簧休息控制器
@RestController
@AllArgsConstructor
@RequestMapping("orders")
public class OrdersController {
private final OrdersRepository ordersRepo;
@ResponseBody
@PostMapping
public OrderModel addOrder(@RequestBody OrderModel order) {
return ordersRepo.saveAndFlush(order);
}
}
POST 请求正文:
{}
POST 响应正文:
{
"id":40,
"orderDate":null,
"deliveryDate":null
}
【问题讨论】:
标签: java mysql spring-boot spring-data-jpa spring-data-rest