【发布时间】:2020-07-19 07:40:19
【问题描述】:
我正在使用 Spring 和 JPA 一起开发 API。我正在处理一个 POST 请求,该请求接受 @RequestBody 作为 JSON 对象,看起来像这样-
{
"id": "323",
"name": "Sam",
"gpsLocation": {
"latitude": 66.7492558,
"longitude": 97.133258
}
}
还有一个包含以下列的 SQL User 表-
id | name | latitude | longitude
在 Spring 中有没有办法将这个嵌套的 json 对象直接映射到这些表列?
这就是我的User.java 和GpsLocation.java 实体类现在的样子-
@Table(name = "user")
@Entity
public class UnderObservation {
@Column(name = "name", nullable = false)
private String name;
@Id
@Column(name = "id", nullable = false)
private String userID;
private GpsLocation location;
}
@Entity
public class GpsLocation {
@Column(name = "Latitude", nullable = false)
private Double Latitude;
@Column(name = "Longitude", nullable = false)
private Double Longitude;
}
我正在寻找一种“展平/解包”GpsLocation 类的方法,以便它直接适合User 表,而不是为GpsLocation 提供单独的表。
我无法更改 JSON 结构,因为其他一些无 SQL 数据库正在使用它。另外,我是 Spring 新手!
【问题讨论】:
标签: spring spring-boot jpa spring-data-jpa jackson