没有一对多和多对多关系的类配置文件:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
???"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
???"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
???<hibernate-mapping>
???<!-- 建立表映射 -->
???<class name="实体类的完整路径" table="数据库表名">
???<!-- 建立主键映射 -->
???<id name="实体类中属性名" column="表中对应的列名" >
???<generator class="native"></generator>
<!-- 主键生成策略 使用native, hibernate会根据实际使用的数据库选择使用自动增长的类型 -->
???</id>
???<!-- 建立普通属性映射 -->
???<property name="实体类中属性名" column="表中对应列名"></property>
</class>
???</hibernate-mapping>
一对多关系中,一的配置:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
???"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
???"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
???<hibernate-mapping>
<!-- 建立表映射 -->
<class name="实体类的完整路径" table="数据库表名">
<!-- 建立主键映射 -->
<id name="实体类中属性名" column="表中对应的列名" >
<generator class="native"></generator>
<!-- 主键生成策略 使用native, hibernate会根据实际使用的数据库选择使用自动增长的类型 -->
</id>
<!-- 建立普通属性映射 -->
<property name="实体类中属性名" column="表中对应列名"></property>
????<!-- 配置hibernate一对多映射 ?,多的关系集合 -->
<set name="实体类中set集合名" inverse="true" cascade="save-update" >
<!--name: 当前实体类中存放多的一方对象集合的属性名,inverse:放弃维护关系 在一对多关系中 一般由一的一方放弃维护,cascade:级联保存或更新 ???-->
<key column="表中外键的列名" />
<one-to-many class="多的关系,实体类的完整类名"/>
</set>
???</class>
???</hibernate-mapping>
一对多关系,多的配置:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
???"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
???"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
???<hibernate-mapping>
<!-- 建立表映射 -->
<class name="实体类的完整路径" table="数据库表名">
<!-- 建立主键映射 -->
<id name="实体类中属性名" column="表中对应的列名" >
<generator class="native"></generator>
<!-- 主键生成策略 使用native, hibernate会根据实际使用的数据库选择使用自动增长的类型 -->
</id>
<!-- 建立普通属性映射 -->
<property name="实体类中属性名" column="表中对应列名"></property>
???????<!-- 配置多对一关系 ?,一的关系对象 ?-->
???????
???????<many-to-one name="一的对象属性名" cascade="save-update" class="一的类完整路径" column="表中外键列名"></many-to-one>
???????<!--name: 多的关系实体类中 一的对象属性名,cascade:级联保存或更新 ?,class:一的对象的类的完整路径, column:表中外键的列名 ?-->
???????
???????</class>
???</hibernate-mapping>
多对多关系配置:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
???"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
???"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
???<hibernate-mapping>
<!-- 建立表映射 -->
<class name="实体类的完整路径" table="数据库表名">
<!-- 建立主键映射 -->
<id name="实体类中属性名" column="表中对应的列名" >
<generator class="native"></generator>
<!-- 主键生成策略 使用native, hibernate会根据实际使用的数据库选择使用自动增长的类型 -->
</id>
<!-- 建立普通属性映射 -->
<property name="实体类中属性名" column="表中对应列名"></property>
???<!-- 配置多对多映射 -->
???<set name="set集合属性名" table="中间表名" cascade="save-update">
????<!-- name:当前实体类中另一方对象集合的属性名 ??table:多对多关系中间表名 ?cascade:级联保存或更新 -->
???<key column="当前实体类在中间表的外键列名" />
???<many-to-many class="另一方的完整类名" column="另一方实体类在中间表的外键列名"></many-to-many>
???<!-- class:另一方实体类的完整类名 , ?column:另一方实体类在中间表的外键列名 -->
???</set>
???</class>
???</hibernate-mapping>
Hibernate基本使用
原文地址:https://www.cnblogs.com/java888/p/10593522.html