分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 代码编程

Hibernate映射关系配置(四)

发布时间:2023-09-06 01:13责任编辑:胡小海关键词:配置Hibernate

多对多单向:

Bean:

public class Student implements Serializable { ???????private int id ; ???????private String name ; ???????private Set<Teacher> teachers ; ???????....}public class Teacher implements Serializable{ ???private int id ; ???????private String ?name ; ???....}

xml:

Student.hbm.xml:<class name = "Student"> ???????<!-- id是来配置主键 ?????????????name是类中的哪个属性和主键映射 ????????????generator:表示主键的生成策略 ???????--> ???????<id name = "id"> ???????????<generator class="native" /> ???????</id> ???????<!-- property是用来把类中的属性和表的字段做一一对应 --> ???????<property name="name" /> ???????????????????????<set name="teachers" table="t_s"> ???????????<!-- key 会在指定的表中新添加列,外键--> ???????????<key column="sid" /> ????????????<many-to-many class="Teacher" column="tid" /> ???????</set> ???????????</class>Teacher.hbm.xml:<class name = "Teacher"> ???????<!-- id是来配置主键 ?????????????name是类中的哪个属性和主键映射 ????????????generator:表示主键的生成策略 ???????--> ???????<id name = "id"> ???????????<generator class="native" /> ???????</id> ???????<property name="name" /> ???</class>

annotation:

@Entitypublic class Student implements Serializable { ???????@Id @GeneratedValue ???public int getId() { ???????return id; ???} ???????/** ????* joinColumns 是指定第三张表中的哪个字段引用当前类对应的表的主键 ????* inverseJoinColumns 是指定第三张表中的哪个字段引用关联的另一张表的主键 ????* @return ????*/ ???@ManyToMany ???@JoinTable(name="ts",joinColumns={ ???????????@JoinColumn(name="sid") ???},inverseJoinColumns={ ???????????@JoinColumn(name="tid") ???}) ???public Set<Teacher> getTeachers() { ???????return teachers; ???}}@Entitypublic class Teacher implements Serializable{ ???????@Id @GeneratedValue ???public int getId() { ???????return id; ???}}

多对多双向:

Bean:

public class Student implements Serializable { ???????private int id ; ???????private String name ; ???????private Set<Teacher> teachers ; ???????....}public class Teacher implements Serializable{ ???private int id ; ???????private String ?name ; ???????private Set<Student> stus ; ???????....}

Xml:

Student.hbm.xml: ???????<class name = "Student"> ???????<!-- id是来配置主键 ?????????????name是类中的哪个属性和主键映射 ????????????generator:表示主键的生成策略 ???????--> ???????<id name = "id"> ???????????<generator class="native" /> ???????</id> ???????<!-- property是用来把类中的属性和表的字段做一一对应 --> ???????<property name="name" /> ???????????????????????<set name="teachers" table="t_s"> ???????????<!-- key 会在指定的表中新添加列,外键--> ???????????<key column="sid" /> ????????????<many-to-many class="Teacher" column="tid" /> ???????</set> ???????????</class>Teacher.hbm.xml:<class name = "Teacher"> ???????<!-- id是来配置主键 ?????????????name是类中的哪个属性和主键映射 ????????????generator:表示主键的生成策略 ???????--> ???????<id name = "id"> ???????????<generator class="native" /> ???????</id> ???????<property name="name" /> ???????????????<set name="stus" table="t_s" cascade="all"> ???????????<key column="tid" /> ???????????<many-to-many column="sid" class="Student" /> ???????</set> ???</class>

annotation:

@Entitypublic class Student implements Serializable { ???????@Id @GeneratedValue ???public int getId() { ???????return id; ???} ???????/** ????* joinColumns 是指定第三张表中的哪个字段引用当前类对应的表的主键 ????* inverseJoinColumns 是指定第三张表中的哪个字段引用关联的另一张表的主键 ????* @return ????*/ ???@ManyToMany ???@JoinTable(name="ts",joinColumns={ ???????????@JoinColumn(name="sid") ???},inverseJoinColumns={ ???????????@JoinColumn(name="tid") ???}) ???public Set<Teacher> getTeachers() { ???????return teachers; ???}}@Entitypublic class Teacher implements Serializable{ ???????@Id @GeneratedValue ???public int getId() { ???????return id; ???} ???????@ManyToMany(mappedBy="teachers") ???public Set<Student> getStus() { ???????return stus; ???}}

Hibernate映射关系配置(四)

原文地址:http://www.cnblogs.com/hyl-home/p/7576978.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved