当前位置: 首页 > 知识库问答 >
问题:

如何在Spring MVC中为简单表继承域创建控制器?

益英逸
2023-03-14

如果答案是否定的,如何将特定类的服务(例如,BookService)注入到控制器中?

共有1个答案

卫成和
2023-03-14

在我看来,您不应该为每个模型类使用一个控制器。原因是控制器覆盖了您希望以编程方式放在一起的任务。比如为你的文档做所有的任务。如果您有像book这样的子类,那么这些也是文档,您可以在几乎不需要新代码的情况下使用相同的控制器来处理它们。

我的模型类将如下所示:

@Entity
@Inheritance(strategy= InheritanceType.JOINED)
@Table(name="document")
public abstract class Document{
  ...
  Getters and Setters
  ...
}

@Entity
@Table(name="book")
public class Book extends Document {
  ...
  Getters and Setters
  ...
}

那么你就有一个这样的控制器。如果您想在控制器中使用服务,您可以这样做,例如在spring中自动创建服务并对其进行注释。函数myFunction1接受文档和书籍,因此不需要有第二个控制器。

@Controller
public class DocumentController {

  @Autowired
  private YourService yourService;

  public <T extends Document> String myFunction1(T myDocument) {
    String result = yourService.getResult(myDocument);
    return result;
  }

  ...
  further functions 
}
 类似资料:
  • 问题内容: 我试图弄清楚控制器继承是如何工作的。我有三个控制器: 和我的看法 但它们都显示“主要”。我该如何解决? 这是一个小提琴http://jsfiddle.net/g3xzh4ov/3/ 问题答案: 这是一个如何在Angular中扩展控制器的示例。 它要求使用,它取代有,它是这样的情况特别好。 注意,它是在幕后使用的,而不是其他Angular服务类型的用法,因此可以将语句从控制器直接带到单独

  • 当我只有product类和两个用继承策略扩展product的类时,单表(product- 必须在根实体中定义鉴别器列,它将在子类com中被忽略。实例演示。实体电子学 产品类别 电子类: 智能手机类别: 我想把电子学课分成两个不同领域的实体。

  • 问题内容: 为什么我的猫没有nlegs属性? 我们应该从内部显式调用,还是应该做更有趣的事情? 如果我想创建一条5条腿的猫该怎么办,是否需要向该接口添加其他参数? 问题答案: 要建立在其他人都说过的基础上,是的,您需要调用父方法。 通常最好使用super。但是,在某些情况下(尤其是当您从多个类继承时),这可能是一个大难题。我将避免赘述,不乏讨论它的各种文章。(此外,其他一些“特殊”功能也有一些奇怪

  • 我想不出为继承层次结构创建视图方法。如果我像下面的代码一样创建类层次结构,那么我就不能从bview.set(...)中正确使用B类的方法和属性而不进行强制转换,因为BView是从AView继承的。和Set method signature接受A类型的变量,但在BView中我希望设置B类型的变量。我该如何解决我的问题? 谢谢你。:3

  • 我有两个实体BillingAddress和ShippingAddress映射到具有鉴别器类型列的表地址。 我能够使用不同的类型值在DB中成功保存/更新两个地址类型。 我面临的问题是当我查询地址表时,如下所示: 这工作正常,但查询ShippingAddress会引发非均匀查询结果异常,即结果中同时包含ShippingAddress和Billingaddress。请让我知道,我应该怎么做。

  • 问题内容: Django中对单表继承有显式支持吗?最后我听说,该功能仍在开发和辩论中。 在此期间是否可以使用库/黑客来捕获基本行为?我有一个混合了不同对象的层次结构。具有Employee类,雇员类型的子类和manager_id(parent_id)的公司结构的规范示例将很好地逼近我正在解决的问题。 就我而言,我想代表一个想法,即一个员工可以在由另一个员工管理的同时管理其他员工。没有用于Manage