一对多的双向
一对多指的是类与集合之间的关系
多对一指的是类与类之间的关系
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"src/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="com.sanmao.utils.Classes">
<id name="cid" length="5">
<generator class="identity"></generator>
</id>
<property name="name" length="20"></property>
<property name="description" length="20"></property>
<!--set 是一个集合-->
<!--name是属性名称
cascade 级联
在保存或者更新classes的时候,对Student进行操作
inverse 是否维护关系 :classes是否维护classes与student之间的关系
关系操作
true 不维护关系
false 维护关系
default:false
-->
<!--inverse不写入主键-->
<set name="students" cascade="save-update" inverse="false">
<!--外键-->
<!--hibernate 内部会通过外键生产SQL语句-->
<key>
<column name="cid"></column>
</key>
<!--建立了对象与对象之间的关联-->
<one-to-many class="com.sanmao.utils.Student"></one-to-many>
</set>
</class>
</hibernate-mapping>
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"src/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="com.sanmao.utils.Student">
<id name="sid" length="5" >
<generator class="identity"></generator>
</id>
<property name="name" length="20"></property>
<property name="description" length="20"></property>
<!--
column 代表外键
Student 通过cid “了解” 它与classes的关系
-->
<!--一对多的双向-->
<!--一对多指的是类与集合之间的关系-->
<!--多对一指的是类与类之间的关系-->
<many-to-one name="classes" class="com.sanmao.utils.Classes"
column="cid" cascade="save-update"></many-to-one>
</class>
</hibernate-mapping>
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD//EN"
"src/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="connection.url">jdbc:mysql://localhost:3306/itheima?characterEncoding=UTF-8</property>
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.password">1234</property>
<property name="connection.username">root</property>
<property name="dialect">
org.hibernate.dialect.MySQLDialect
</property>
<property name="hbm2ddl.auto">update</property>
<property name="show_sql">true</property>
<property name="format_sql">true</property>
<property name="current_session_context_class">thread</property>
<mapping resource="com/sanmao/utils/Classes.hbm.xml"></mapping>
<mapping resource="com/sanmao/utils/Student.hbm.xml"></mapping>
</session-factory>
</hibernate-configuration>
package com.sanmao.utils;
import java.io.Serializable;
import java.util.Set;
/**
* Created by root on 16-9-20.
*/
public class Classes implements Serializable{
private Long cid;
private String name;
private String description;
private Set<Student> students;
public Long getCid() {
return cid;
}
public void setCid(Long cid) {
this.cid = cid;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public Set<Student> getStudents() {
return students;
}
public void setStudents(Set<Student> students) {
this.students = students;
}
}
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"src/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="com.sanmao.utils.Student">
<id name="sid" length="5" >
<generator class="identity"></generator>
</id>
<property name="name" length="20"></property>
<property name="description" length="20"></property>
<!--
column 代表外键
Student 通过cid “了解” 它与classes的关系
-->
<!--一对多的双向-->
<!--一对多指的是类与集合之间的关系-->
<!--多对一指的是类与类之间的关系-->
<many-to-one name="classes" class="com.sanmao.utils.Classes"
column="cid" cascade="save-update"></many-to-one>
</class>
</hibernate-mapping>