Hibernate笔记三,表设计之多对多

本文是Hibernate笔记的第三部分,聚焦于多对多关系的表设计。通过学生表和课程表的例子,展示了如何在类中使用Set保存对方对象,并在ORM映射文件中配置多对多关系。在映射文件中,使用set节点和table属性定义第三张关联表,key和many-to-many元素用于表示子表中外键和多对多关系。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Hibernate笔记三,表设计之多对多

例子:学生表和课程表(多对多关系)


学生类

public class Student {

    private Integer id;
    private String name;

    private Set<Course> courses = new HashSet<>();

    //Get 和 Set 略
}

课程表

public class Course {

    private Integer id;
    private String name;

    private Set<Student> students = new HashSet<>();
    //Get 和 Set 略
}

一个学生肯定会有多门课程,一门课程也肯定有许多学生,在类中采用Set来保存对方对象,在对应的ORM映射文件中,表达多对多用set 节点表示,两个映射文件中的set 节点类似。

<set name="courses" table="t_student_course" inverse="false" cascade="save-update">
            <key column="sid"></key>
            <many-to-many class="Course" column="cid"></many-to-many>
</set>

table 属性:多对多中表达关系的第三张表名(在第三张表中储存双方表的主键)

key: 表示子表中的外键

 column 表示外键名

many-to-many :多对多关系

class : 另外 ”多“ 的一方的完整类名
    column:当前表所引用的外键名
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值