<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC"-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"><hibernate-mapping package="com.zr.bimany2many.xml">
<!-- Tester类对应testers表 --> <class name = "Tester" table = "testers"> <!-- testers表的主键 --> <id name="id" column="id"> <!-- 主键生成策略 --> <generator class="sequence"> <!-- 数据库中序列的名字 --> <param name="sequence">testers_id_seq</param> </generator> </id> <!-- 普通字段的映射 --> <property name = "name"></property> <!-- 测试人员到测试项目的多对多关联--> <!-- 定义关联表 --> <!-- table定义关联表的表名 --> <!-- cascade:关联同步 --> <set name="projects" table="testers_projects" cascade="save-update"> <!-- 我(测试人员)在关联表中的外键 --> <key column="testers_id"></key> <!-- 多对多关联的另一方(测试项目) --> <many-to-many class="Project" column="projects_id"></many-to-many> </set> </class><!-- ================================================================================================== --> <!-- Project类对应projects表 --> <class name = "Project" table="projects"> <!-- projects表的主键 --> <id name="id" column="id"> <!-- 主键生成策略 --> <generator class="sequence"> <param name="sequence">projects_id_seq</param> </generator> </id> <!-- 普通字段的映射 --> <property name = "name"></property> <!-- 测试项目到测试人员的多对多关联--> <!-- inverse同步数据控制权的反转 --> <!-- 单向关联中,不需要管inverse了,默认="false" --> <!-- 双向一对多关联中,在"一"(相对于多方)方设置 inverse="true"--> <!-- 在双向多对多关联中,在任何一方设置 inverse=true--> <!-- Tester中关联对象属性的名字testers --> <set name = "testers" table="testers_projects" inverse="true"> <!-- 说明关联的外键 --> <key column="projects_id"></key> <!-- 说明与谁有多对多的关联 --> <many-to-many class="Tester" column="testers_id"/> </set> </class></hibernate-mapping>