【发布时间】:2017-08-21 09:30:35
【问题描述】:
我正在为类层次结构使用JOINED 继承策略,如下所示:
abstract super class Product
concrete sub class Type1Product extends Product
concrete sub class Type2Product extends Product
现在我想创建一个 REST 端点,它允许用户发布数据并将其解析为产品的特定子类,确保任何类型的产品都具有相同的端点。所以类似于以下内容:
@RequestMapping(method = POST, consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE)
public Product save(@Valid Product product) {
// ...
return product;
}
目前,当我尝试发布时,我收到一条错误消息,提示我无法初始化抽象类,因为 Spring 正在尝试创建 Product 实例,而不是正确子类型的实例。
我正在尝试做的事情可能吗?如果不是,那么在为继承层次结构制作这样的端点时,最佳实践或约定是什么?
【问题讨论】:
-
如果您保持产品类别具体并在退货时退回特定产品可能会解决问题
-
但这在概念上是不正确的,因为 Product 不应该单独存在。我不介意改变这种方法,只是想知道这种情况通常是如何处理的。
标签: java spring-mvc inheritance