Hibernate 使用一对多或多对一
两类: 部门任务 一个部门可以有许多任务。一项任务只能属于一个部门 所以使用一对多还是多对一Hibernate 使用一对多或多对一,hibernate,one-to-many,many-to-one,Hibernate,One To Many,Many To One,两类: 部门任务 一个部门可以有许多任务。一项任务只能属于一个部门 所以使用一对多还是多对一 一对多 班级部{ 私人设定任务; } 课堂任务{ ...... } // Department.hbm.xml .... ..... 多对一 class Department{ } class Task{ Department depart; } // Task.hbm.xml .... <property name="depart"> <many-to-one c
一对多
班级部{
私人设定任务;
}
课堂任务{
......
}
//
Department.hbm.xml
....
.....
多对一
class Department{
}
class Task{
Department depart;
}
//
Task.hbm.xml
....
<property name="depart">
<many-to-one class="Department" />
</property>
.....
班级部门{
}
课堂任务{
科室;
}
//
Task.hbm.xml
....
.....
有什么区别 顺便问一下,使用集合和列表有什么区别
例如使用列表(xml配置)?您应该定义一个名为DEPARTMENT\u TASKS的联接表,并在它们之间建立多对多关系。仅通过查看结构,我会选择多对一。
如果必须将任务重新分配给其他部门,则只需更改任务对象,而不需要更改原始部门对象
从java集合中,集合不允许重复,而列表可能您的选择取决于两件事:
希望能有所帮助。我想,没有部门,任务就不可能存在,但没有与其相关的任务,部门也可以存在。因此,依赖关系取决于将自身附加到部门的任务,因此应该是关系中的拥有方。这里应该选择多对一。但是我必须列出属于指定部门的所有任务,如果使用多对一,这可能吗?确保sql将
select*from task,其中department=&1
replace&1带有部门id,并且您拥有属于该部门的所有任务。
class Department{
}
class Task{
Department depart;
}
//
Task.hbm.xml
....
<property name="depart">
<many-to-one class="Department" />
</property>
.....