我使用 Spring MVC 和常规 JDBC。
我刚刚了解到我应该将业务流程分成多个层,即表示层、 Controller 层、服务层和存储库/DAO 层。现在假设我有一个名为 Person
的实体,它可以有多个 Jobs
。 Job
本身是另一个具有自己属性的实体。据我所知,存储库层只管理一个实体。现在我有一个包含另一个实体的实体。我在哪里“加入”他们?服务层?
假设我想得到一个 person
的 job
还不知道(延迟加载)。但是系统稍后可能会询问该特定人
的工作
是什么。在这种情况下,每一层的作用是什么?
如果我需要在此问题中添加任何详细信息,请告诉我。
最佳答案
从我可以从问题陈述中收集到的信息:-
- 人 - 可以没有工作。可以有零个或多个工作。
- 工作 - 可以独立于执行它的人而存在。
一种更简洁的方法是拥有一个封装此映射的实体(及其表):-
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/