【发布时间】:2017-09-18 07:53:30
【问题描述】:
我正在使用 spring data rest,我通过 spring data rest 公开了以下实体
捐赠请求
@Data
@Entity
@Table(name="donation_request",schema="public")
public class DonationRequest {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name="donation_request_id")
Integer donationRequestId;
@Column(name="expiry_datetime")
Date expiryDatetime;
@Column(name="blood_group")
String bloodGroup;
@Column(name="no_of_bottles")
String noOfBottles;
@OneToOne
@JoinColumn(name="hospital_id")
Hospital hospital;
@OneToOne
@JoinColumn(name="user_data_id")
UserData requester;
@Column(name="active")
Boolean active;
}
医院
@Data
@Entity
@Table(name="hospital",schema="public")
public class Hospital {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name="hospital_id")
Integer hospitalId;
@Column(name="name")
String name;
@Column(name="address")
String address;
@Column(name="loc",columnDefinition = "geometry")
Point loc;
}
现在我有一个 android 客户端,它具有与上述相同的类定义。医院在安卓客户端启动时被缓存。现在我想在服务器上创建一个donationRequest 实体。我可以通过将donationRequest 对象的json 发布到/api/donationRequests 来轻松做到这一点。这个 json 也包含医院对象。但是新创建的donationRequest 和hospital 并没有链接在一起。
postman 中以下类型的 json 不会创建链接:
{
"bloodGroup":"AB+",
"hospital":{
"hospitalId":1
}
}
我知道以下 json 确实会创建链接:
{
"bloodGroup":"AB+",
"hospital":"/api/hospitals/1"
}
我的问题是如何使用第一种类型的 json 创建链接,因为这是从 android 客户端序列化 dontaionRequest 对象的自然方式?此外,我希望通过 /api/hospitals 暴露医院,因此 删除该休息资源不是一种选择。
【问题讨论】:
标签: android spring-boot spring-data-rest