首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用一对多或多对一。

使用一对多或多对一。
EN

Stack Overflow用户
提问于 2011-03-12 08:17:14
回答 4查看 1.3K关注 0票数 2

两班:

部门任务

一个部门可以有很多任务。一个任务只能属于一个部门。

所以用一对多还是多对一?

代码语言:javascript
运行
复制
one-to-many
class Department{
  private Set tasks;
}
class Task{
  ......
}
//
Department.hbm.xml
....
<set name="tasks">
    <key column="departId" />
    <one-to-many class="Task" />
</set>
.....

多对一

代码语言:javascript
运行
复制
class Department{

}
class Task{
  Department depart;
}
//
Task.hbm.xml
....
<property name="depart">
    <many-to-one class="Department" />
</property>
.....

有什么关系呢?

顺便问一下,使用集合和列表有什么区别?

以及使用list(xml配置)的示例?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-03-12 11:25:52

你的选择取决于两件事:

  1. 在什么情况下使用这种关系。例如,如果你需要按部门列出你的任务,那么你就需要一比多的任务。因为您正在使用Hibernate,所以加载它们一次也很容易。
  2. 如果您按部门更新任务,那么您也需要其他关系。

但是,请记住,这些决策深深植根于您的领域模型以及您希望如何构建它。使用这些实体的用途是什么。我强烈建议阅读这个所以线看埃里克·埃文斯的这段视频

希望这能有所帮助。

票数 0
EN

Stack Overflow用户

发布于 2011-03-13 13:54:01

我认为没有部门就不可能存在任务,但是没有与其关联的任务就可以存在。因此,依赖于任务本身附加到部门,因此应该是拥有方面的关系。多对一应该是你的选择。

票数 2
EN

Stack Overflow用户

发布于 2011-03-12 08:21:54

只要看一下结构,我就会选择多对一。

如果一个任务必须重新分配到另一个部门,那么只需要更改任务对象,而不是原始的部门对象。

在java集合中,集合不允许重复,而列表可能允许重复。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5281451

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档