【发布时间】:2018-04-14 15:09:51
【问题描述】:
我有一个Province 类,如下所示:
public class Province {
@Id
Long id;
@Column(nullable = false)
String name;
@JsonManagedReference
@OneToMany(mappedBy = "province")
List<City> cities;
}
还有一个City 类,如下所示:
public class City{
@Column(nullable = false)
String name;
@JsonBackReference
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "province_id")
Province province;
}
现在我想在 REST 结果中的 City 的 JSON 结果中包含 pronivce_id(作为 int 值而不是对象)。
我该怎么做?
【问题讨论】:
-
现在的方式很好,我想更好的方法是明确选择一个省 ID 并将其设置为您想要返回的特定对象 getter setter。也给我们一个服务层,这样我们就可以看到你是如何返回的。
-
JSON 与 JPA 无关,因此请定义您的问题出在哪里……在执行查询和检索对象 (JPA) 或将对象转换为 JSON 时?
-
@parladneupane 没有任何服务层,因为我使用的是 Spring Boot。我只返回从
JPARepository扩展的cityRepo.findAll(),在我的REST API 的结果中我没有province_id。 -
@JsonBackReference @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "province_id") Province province;将始终为您提供省对象,因此如果您需要具有省 ID 的市,则需要在市类中具有省 ID 的 getter 设置器。
标签: java spring jpa jackson hibernate-onetomany