【发布时间】:2020-12-22 20:27:44
【问题描述】:
我正在玩 Quarkus 并尝试构建一个 CRUD REST 应用程序;我试图让 2 个端点返回相同实体的 2 个不同视图。以下是我在 Spring + Jackson 中的表现示例:
@Entity
public class Car{
public String model;
@ManyToOne( fetch = FetchType.LAZY, cascade = {CascadeType.ALL})
public Owner owner;
// [...]
}
@Entity
public class Owner{
public String name;
// [...]
}
这是重要的部分:现在如果我使用 Jackson,我会创建一个 CarView 类:
public class CarView {
public static class Public {};
public static class Private extends Public {};
}
然后我会用 @JsonView(CarView.Public.class) 和 Car.owner 用 @JsonView(CarView.Private.class) 注释 Car.model,然后在 REST 控制器中用相同的注释来注释我的方法,以便告诉杰克逊我想使用哪个视图:
@RequestMapping("/car/{id}")
@JsonView(CarView.Public.class)
public Car getPublic(@PathVariable int id) { /*...*/ }
@RequestMapping("/car/private/{id}")
@JsonView(CarView.Private.class)
public Car getPrivate(@PathVariable int id) { /*...*/ }
我可以使用 Quarkus 和 JSON-B 实现相同的结果吗?
【问题讨论】:
标签: java spring jackson quarkus jsonb-api