Hibernate 一对多关系单向控制(一控制多)

本文介绍了一对多关系在Hibernate中的实现方式,包括实体类的设计、映射文件的配置及hibernate.cfg.xml配置等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、一对多的单向操作:

        通过Class 能联系到 Student,而反过来没有联系。

            public  class  Classes{                                                                public  class  Student{
                private  int  id;                                 一对多单项联系                           private  Long  sid;
                private  String  name;                      ————————>                    private  String  sname;
                private  Set<Strudent>  students;                                                       private  String  description;
            }                                                                                                  }

2、建cn.google.hibernate.domain.Classes.java

            public class Classes implements Serializable{
                private Long cid;
                private String cname;
                private String description;
                private Set<Student>  students;
                封装……
            }

3、cn.google.hibernate.domain.Students

            public class Student implements Serializable{
                private Long sid;
                private String sname;
                private String description;
                封装……
            }

4、建 Classes.hbm.xml

			<hibernate-mapping>
				<class name="cn.itcast.hiberate.sh.domain.Classes">
					<id name="cid" length="5" type="java.lang.Long">
						<generator class="increment"></generator>
					</id>
					<property name="cname" length="20" type="java.lang.String"></property>					
					<property name="description" length="100" type="java.lang.String"></property>

					<!-- 
						set元素对应类中的set集合
						通过set元素使classes表与student表建立关联
							key是通过外键的形式让两张表建立关联
							one-to-many是通过类的形式让两个类建立关联						
					 -->
					<set   name="students"   cascade="save-update" >
						<!-- 
							key是用来描述外键
						 -->
						<key>
							<column name="cid"></column>
						</key>
						<one-to-many  class="cn.itcast.hiberate.sh.domain.Student"/>
					</set>
				</class>
			</hibernate-mapping>
5、创建 Sutdent.hbm.xml

			<hibernate-mapping>
				<class name="cn.itcast.hiberate.sh.domain.Student">
					<id name="sid" length="5">
						<generator class="increment"></generator>
					</id>
					<property name="sname" length="20"></property>
					<property name="description" length="100"></property>
				</class>
			</hibernate-mapping>
6、写配置文件 hibernate.cfg.xml

			<?xml version='1.0' encoding='utf-8'?>
			<!DOCTYPE hibernate-configuration PUBLIC
				"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
				"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
			<hibernate-configuration>
				<session-factory>
					<property name="connection.username">root</property>
					<property name="connection.password">root</property>
					<property name="connection.url">
						jdbc:mysql://localhost:3306/itcast_sh_hibernate
					</property>
					<property name="hbm2ddl.auto">update</property>
					<property name="show_sql">true</property>
					<mapping resource="cn/itcast/hiberate/sh/domain/Classes.hbm.xml" />
					<mapping resource="cn/itcast/hiberate/sh/domain/Student.hbm.xml" />
				</session-factory>
			</hibernate-configuration>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值