java - 我应该在哪一层将 2 个实体连接在一起?

标签 java spring-mvc paradigms

我使用 Spring MVC 和常规 JDBC。

我刚刚了解到我应该将业务流程分成多个层,即表示层、 Controller 层、服务层和存储库/DAO 层。现在假设我有一个名为 Person 的实体,它可以有多个 JobsJob 本身是另一个具有自己属性的实体。据我所知,存储库层只管理一个实体。现在我有一个包含另一个实体的实体。我在哪里“加入”他们?服务层?

假设我想得到一个 personjob 还不知道(延迟加载)。但是系统稍后可能会询问该特定工作 是什么。在这种情况下,每一层的作用是什么?

如果我需要在此问题中添加任何详细信息,请告诉我。

最佳答案

从我可以从问题陈述中收集到的信息:-

  1. 人 - 可以没有工作。可以有零个或多个工作。
  2. 工作 - 可以独立于执行它的人而存在。

一种更简洁的方法是拥有一个封装此映射的实体(及其表):-

class Employment{
     private Person person;
     private Job job;
}

现在您可以从两端进行查询。喜欢:-

  • 从工作中选择 PERSON.ID=xyz

这可能会产生 0 行或更多行。

每一行也会有映射的作业的信息。

所以在这种情况下,您的服务/存储库将类似于:-

interface EmployementRepository{

   //  CRUD methods on Employement.
}

关于java - 我应该在哪一层将 2 个实体连接在一起?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19512706/

相关文章:

java - 获取资源包内的所有文件名并适用于非jar和jar运行

java - Spring MVC 使用 ajax 检查用户名可用性

java - Spring 环境变量

algorithm - Scala 快速排序

paradigms - 人们使用哪些工具/编程语言来支持 TDD?

java - 如何将 Spring Integration Consumer 配置为事件驱动?

java - 同步不适用于计数器?

java - 使用@Secured 注释保护 MVC Controller 方法

oop - OOP 的实际使用

给定类型不能应用 Java 构造函数