java - 基于 JSON 负载的动态继承实体
问题描述
所以我有这个2 个子实体List<Vehicle> vehicles;
的Vehicle
父实体Car
和Truck
. 我想要做的是发送一个 POST 请求,并自动为服务层创建相应的对象,Car
或者Truck
根据 JSON 有效负载。
Vehicle
:
@Entity
@Table(name = "vehicle")
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
public class Vehicle{
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private Integer index;
public Vehicle() {
}
// getters and setters
}
Car
@Entity
@Table(name = "car")
public class Car extends Vehicle {
private Integer maxSpeed;
private String brand;
public Car () {
}
public Car(Integer index, Integer maxSpeed, String brand) {
super(index);
this.maxSpeed = maxSpeed ;
this.brand = brand;
}
// getters and setters
}
Truck
@Entity
@Table(name = "truck")
public class Truck extends Vehicle {
private Integer weight;
private Double size;
public Truck() {
}
public Truck(Integer index, Integer value, String period) {
super(index);
this.weight = weight;
this.size= size;
}
// getters and setters
}
JSON
会是这样的:
"vehicles":
[
{
"index": 1,
"maxSpeed": "180",
"brand": "Renault"
},
{
"index": 0,
"weight": 4000,
"size": 25.0
},
{
"index": 3,
"weight": 3700,
"size": 17.0
},
{
"index": 2,
"maxSpeed": "230",
"brand": "Mercedes"
}
]
并将这个 JSON 作为 POST 请求的主体发送,我想读取每辆车并根据它们的属性创建相应的车辆类型(索引 0 -> 卡车、索引 1 -> 汽车等)。
解决方案
推荐阅读
- autohotkey - 在 Autohotkey 中检测 Alt+LeftMouse 单击并发送延迟双击
- postgresql - 使用动态目标列进行查询
- python - Python - 日期格式
- angular - 在组件模板中使用“this”调用变量或方法是一种好习惯吗?
- qt - 根据 listElement 键切换 listView 的委托
- pip - 无法导入gym;ModuleNotFoundError:没有名为“gym”的模块
- hadoop - 设计 MapReduce 函数以查找集合列表之间的交集
- php - 在 woocommerce 中使用 if else 评分
- javascript - 用于将迭代值(例如数组元素)插入 HTML 的简单 JavaScript 模板文字
- python - Python 3 子元素列表比较