为了账号安全,请及时绑定邮箱和手机立即绑定

many-to-one和one-to-many中的column分别代表什么?

many-to-one和one-to-many中的column分别代表什么?

亿人不及她 2016-12-25 15:46:04
假如说有个班级表,gid ,gname,gdesc, 学生表sid,sname,sgender,sod(这个是避免和gid混淆),那么配置文件中该如何配置呢?
查看完整描述

4 回答

?
雪舞蔷薇

TA贡献51条经验 获得超16个赞

你的学生表里 少写了 一列  sid 用来关联班级的主键的。

一个班级(grad)对应多个学生(student) 这就是一对多,要配置一对多 就要在 一方(grade)的实体类里建一个多方(student)实体集合如private Set<student> students=new HashSet<student>();

简单的列就不说了,直接说重点:

一对多

在Grade.xml文件里  

<set name="students" table="t_student">

    <!--Column 是指定关联的外键列 这里的gid 是Student中gid -->

    <key column="gid"></key>

    <one-to-many  class="包名.Student"/>

</set>

多对一

同理要在 多方(Student)的实体类 建一个 一方(Grade)的引用 (不是集合) ,private Grade grade

在Student.xml文件里

<!--Column 是指定关联的外键列 这里的gid 是Grade中gid -->

<many-to-one name="grade" class="包名.Grade" column="gid"></many-to-one>


查看完整回答
2 反对 回复 2016-12-26
?
NadiaSmile

TA贡献149条经验 获得超291个赞

一个班级可以有多个学生  所以one-to-many

查看完整回答
反对 回复 2016-12-26
?
别克思人

TA贡献1条经验 获得超1个赞

这样跟你说,数据库已经设计好的员工表,和部门表为了使他们有关系需要在员工表里设置个部门表的外键。而onetomarry和marrytoone的column填写的都是员工表的那个外键。(注意的是是员工表里面的部门外键,而不是员工类里面的关联属性名),理解了吧。
查看完整回答
1 反对 回复 2016-12-25
  • 慕侠2044698
    慕侠2044698
    你这个回答有问题。 <many-to-one name="对应本类的属性名" column="映射到本表的字段名" class="映射到本表的实体类" /> 举例一个主人(host) 可以有多个宠物(pet),但一个宠物只能有一个主人,那么宠物与主人就是多对一 pet表里的主人叫 host host表里的主人叫userId 那么在宠物的xml里就这么配置 <many-to-one name="classHost" column="userId"/> 正确答案见“雪舞蔷薇”
  • 慕侠2044698
    慕侠2044698
    我这句话是要回在雪舞蔷薇那边
?
黑山头山大王

TA贡献20条经验 获得超8个赞

column表示数据表中的列名

查看完整回答
反对 回复 2016-12-25
  • 亿人不及她
    亿人不及她
    我知道是列名,我想知道:比如学生和班级是双向联系的,那么这两个column中的值一样吗?为什么,说详细点,谢谢!
  • 4 回答
  • 0 关注
  • 2872 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信