单文件配置:
<span style="font-size:24px;"><hibernate-mapping>
<!--<span style="color:#ff0000;"> name为类的全路径,table为表名</span> -->
<class name="com.lovo.bean.MessageBean" table="t_user">
<!-- <span style="color:#ff0000;">定义主键,name表示哪个属性对应主键列,
如果属性名和列名一致,column可以不写 </span>-->
<id name="id" column="id">
<!-- <span style="color:#ff0000;">定义主键生成策略 ,native表示利用数据库的主键自动增长列来生成主键</span>-->
<generator class="native"></generator>
</id>
<!-- <span style="color:#ff0000;">定义普通属性</span> -->
<property name="userName"></property>
<property name="tel"></property>
</class>
</hibernate-mapping></span>
1)主表所对应的文件配置方法:
<span style="font-size:24px;"><hibernate-mapping>
<!-- <span style="color:#ff0000;">name为类的全路径,table为表名</span> -->
<class name="com.lovo.bean.ManBean" table="t_man">
<!-- <span style="color:#ff0000;">定义主键,name表示哪个属性对应主键列,
如果属性名和列名一致,column可以不写</span> -->
<id name="id" column="id">
<!-- <span style="color:#ff0000;">定义主键生成策略 ,native表示利用数据库的主键自动增长列来生成主键</span>-->
<generator class="native"></generator>
</id>
<!-- <span style="color:#ff0000;">定义普通属性</span> -->
<property name="manName"></property>
<!-- <span style="color:#ff0000;">name为属性名,class为该属性的类型,cascade表示当对主表对象操作时,从表对象是否做级联操作</span> -->
<one-to-one name="code" class="com.lovo.bean.CodeBean" cascade="all"></one-to-one>
</class><span style="color:#ffffff;">
</hibernate-mapping></span></span>
2)从表所对应的文件配置方法:
<span style="font-size:24px;"><hibernate-mapping>
<!-- name为类的全路径,table为表名 -->
<class name="com.lovo.bean.CodeBean" table="t_code">
<!-- 定义主键,name表示哪个属性对应主键列,
如果属性名和列名一致,column可以不写 -->
<id name="id" column="id">
<!-- <span style="color:#ff0000;">foreign表示该主键同时也是外键</span>-->
<generator class=<span style="color:#ff0000;">"<strong>foreign</strong></span>">
<!-- <span style="color:#ff0000;">man为属性名,表示该主键由ManBean对象的主键生成</span> -->
<param name="property">man</param>
</generator>
</id>
<!-- 定义普通属性 -->
<property name="codeName"></property>
<!-- <span style="color:#ff0000;">costrined表示该表的主键存在外键约束</span> -->
<!--l<span style="color:#ff0000;">azy="false"表示取消延迟加载,查询该对象时,关联对象立即查询</span> -->
<<span style="color:#ff0000;"><strong>one-to-one</strong></span> name="man" class="com.lovo.bean.ManBean"
constrained="true" lazy="false"></one-to-one>
</class>
</hibernate-mapping></span>
一对多文件配置:
1)主表所对应的 映射文件:
<hibernate-mapping>
<!-- name为类的全路径,table为表名 -->
<class name="com.lovo.bean.UserBean" table="t_user2">
<!-- 定义主键,name表示哪个属性对应主键列,
如果属性名和列名一致,column可以不写 -->
<id name="id" column="id">
<!-- 定义主键生成策略 ,native表示利用数据库的主键自动增长列来生成主键-->
<generator class="native"></generator>
</id>
<!-- 定义普通属性 -->
<property name="userName"></property>
<property name="birthday"></property>
<set name="roomSet" inverse="true">
<!-- <span style="color:#ff0000;">配置从表外键</span> -->
<key column="userId"></key>
<!-- <span style="color:#ff0000;">配置一对多,指定集合存放元素的类型</span> -->
<<strong><span style="color:#ff0000;">one-to-many</span></strong> class="com.lovo.bean.RoomBean"/>
</set>
</class>
</hibernate-mapping><span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);"> </span>
2)从表所对应的 映射文件:
<hibernate-mapping>
<!-- name为类的全路径,table为表名 -->
<class name="com.lovo.bean.RoomBean" table="t_room">
<!-- 定义主键,name表示哪个属性对应主键列,
如果属性名和列名一致,column可以不写 -->
<id name="id" column="id">
<!-- 定义主键生产策略 ,native表示利用数据库的主键自动增长列来生成主键-->
<generator class="native"></generator>
</id>
<!-- 定义普通属性 -->
<property name="address"></property>
<property name="price"></property>
<!--<strong><span style="color:#ff0000;">一对多</span></strong>, lazy="false"解决懒加载异常问题-->
<<span style="color:#ff0000;"><strong>many-to-one</strong></span> name="user" class="com.lovo.bean.UserBean"
column="userId" lazy="false"></many-to-one>
</class>
</hibernate-mapping>
多对多文件配置:(在数据库中需要中间表来关联)
1)主表所对应的 映射文件:<hibernate-mapping>
<!-- name为类的全路径,table为表名 -->
<class name="com.lovo.bean.RoleBean" table="t_role">
<!-- 定义主键,name表示哪个属性对应主键列,
如果属性名和列名一致,column可以不写 -->
<id name="id" column="id">
<!-- 定义主键生产策略 ,native表示利用数据库的主键自动增长列来生成主键-->
<generator class="native"></generator>
</id>
<!-- 定义普通属性 -->
<property name="roleName"></property>
<!-- <span style="color:#ff0000;">talbe为中间表的表名</span> -->
<set name="gradeSet" table="t_role_grade">
<!-- <span style="color:#ff0000;">当前对象对应中间表的外键列名</span> -->
<key column="roleId"></key>
<!-- <span style="color:#ff0000;">class为集合中存放元素的类型,</span>
<span style="color:#ff0000;"><span style="white-space:pre"> </span>column为集合中存放元素对应的中间表的外键列名</span> -->
<<span style="color:#ff0000;">many-to-many</span> class="com.lovo.bean.GradeBean"
column="gradeId"></many-to-many>
</set>
</class>
</hibernate-mapping><span style="color:#ff0000;">
</span>
<hibernate-mapping>
<!-- name为类的全路径,table为表名 -->
<class name="com.lovo.bean.RoleBean" table="t_role">
<!-- 定义主键,name表示哪个属性对应主键列,
如果属性名和列名一致,column可以不写 -->
<id name="id" column="id">
<!-- 定义主键生产策略 ,native表示利用数据库的主键自动增长列来生成主键-->
<generator class="native"></generator>
</id>
<!-- 定义普通属性 -->
<property name="roleName"></property>
<!-- <span style="color:#ff0000;">talbe为中间表的表名</span> -->
<set name="gradeSet" table="t_role_grade">
<!-- <span style="color:#ff0000;">当前对象对应中间表的外键列名</span> -->
<key column="roleId"></key>
<!-- <span style="color:#ff0000;">class为集合中存放元素的类型,</span>
<span style="color:#ff0000;"><span style="white-space:pre"> </span>column为集合中存放元素对应的中间表的外键列名</span> -->
<<span style="color:#ff0000;">many-to-many</span> class="com.lovo.bean.GradeBean"
column="gradeId"></many-to-many>
</set>
</class>
</hibernate-mapping><span style="color:#ff0000;">
</span>
2)从表所对应的 映射文件:
<hibernate-mapping>
<!-- name为类的全路径,table为表名 -->
<class name="com.lovo.bean.GradeBean" table="t_grade">
<!-- 定义主键,name表示哪个属性对应主键列,
如果属性名和列名一致,column可以不写 -->
<id name="id" column="id">
<!-- 定义主键生成策略 ,native表示利用数据库的主键自动增长列来生成主键-->
<generator class="native"></generator>
</id>
<!-- 定义普通属性 -->
<property name="gradeName"></property>
<set name="roleSet" table="t_role_grade">
<!-- <span style="color:#ff0000;">配置从表外键</span> -->
<key column="gradeId"></key>
<!-- <span style="color:#ff0000;">配置一对多,指定集合存放元素的类型</span> -->
<<strong><span style="color:#ff0000;">many-to-many</span></strong> class="com.lovo.bean.RoleBean" column="roleId"/>
</set>
</class>
</hibernate-mapping>