我正在玩 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 {};
}
有了这个,我会Car.model
用@JsonView(CarView.Public.class)
和Car.owner
用注释@JsonView(CarView.Private.class)
,然后用相同的注释注释我在 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 完成相同的结果吗?