hibernate一对一关联映射
我在学习一对一单向外键关联。有的时候用"<many-to-onename="student"column="studentId"unique="true"></many-...
我在学习一对一单向外键关联。
有的时候用"
<many-to-one name="student" column="studentId" unique="true" ></many-to-one>"里面指定一个‘unique’属性
而有的时候用<one-to-one> 请问该怎么来确定来用哪个呢?是不是要看外键加载哪个表上,有外键的那一方的配置文件里用"<many-to-one" 对吗?
还有就是,单向和双向,影响的仅仅是数据的加载,对数据的存储没有任何影响。对嘛? 展开
有的时候用"
<many-to-one name="student" column="studentId" unique="true" ></many-to-one>"里面指定一个‘unique’属性
而有的时候用<one-to-one> 请问该怎么来确定来用哪个呢?是不是要看外键加载哪个表上,有外键的那一方的配置文件里用"<many-to-one" 对吗?
还有就是,单向和双向,影响的仅仅是数据的加载,对数据的存储没有任何影响。对嘛? 展开
1个回答
展开全部
额,我觉得,你是学得有点头晕了吧?!,不过能理解哈,我那时候也是蛮晕的!
首先:一定要理解Hibernate的关联关系是用来做什么的,目的是要干什么?有什么好处...等等...
我先明确下,你给的<many-to-one>和<one-to-one>可以说是没有什么关系的,但也不是没有特别的实例(比如:船长可以是一艘船的,如果他技术好,也有可能被分配到多艘船上,这就存在着:一个船长对应一条船:one-to-one,多条船可以只有一个船长:many-to-one)但是,大部分这样的例子是用不到的;
任何对应关系都是有单向和双向的,如果,你分不清,就这样记住:
如果是一对一关系:
1、单向:一个船长只能管理一条船:在船长类里面配置船的类对象:(先把船类在船长类里面的关联键去掉)
private 船类 船类对象;
让后在船长类映射文件里面配置 <one-to-one name="船类对象" class="船的实体类" cascade="all"></one-to-one>(配置的时候要把船类和船长类有关联的键值那列,从映射文件去掉!
2、双向:船长和船类里面都分别配置对方的实体类对象,同理要把关联的键值去掉,分别在各子的映射文件中配置以上关系,(但请注意,一定以船长类配置船,船类配置船长)
接下来就是多对一了,(房屋类型和房屋)二者就是很明显的一对多关系
1、单向多对一:在房屋类里面写房屋类型的对象,同理把相关的键值去掉;
在映射文件中<many-to-one name="房屋类型对象" class="房屋类型类" column="房屋类型在房屋类里面相关的外键" cascade="save-update"> </many-to-one> (在配置的时候,同时需要再映射文件中删除关联的外键列)
2、双向的多对一,也就是(房屋类——房屋类型:→多对一;(房屋类型——房屋类→一对多)就为双向的了,配置原理如上;
额,打的不知道清不清楚,希望能帮到你!
首先:一定要理解Hibernate的关联关系是用来做什么的,目的是要干什么?有什么好处...等等...
我先明确下,你给的<many-to-one>和<one-to-one>可以说是没有什么关系的,但也不是没有特别的实例(比如:船长可以是一艘船的,如果他技术好,也有可能被分配到多艘船上,这就存在着:一个船长对应一条船:one-to-one,多条船可以只有一个船长:many-to-one)但是,大部分这样的例子是用不到的;
任何对应关系都是有单向和双向的,如果,你分不清,就这样记住:
如果是一对一关系:
1、单向:一个船长只能管理一条船:在船长类里面配置船的类对象:(先把船类在船长类里面的关联键去掉)
private 船类 船类对象;
让后在船长类映射文件里面配置 <one-to-one name="船类对象" class="船的实体类" cascade="all"></one-to-one>(配置的时候要把船类和船长类有关联的键值那列,从映射文件去掉!
2、双向:船长和船类里面都分别配置对方的实体类对象,同理要把关联的键值去掉,分别在各子的映射文件中配置以上关系,(但请注意,一定以船长类配置船,船类配置船长)
接下来就是多对一了,(房屋类型和房屋)二者就是很明显的一对多关系
1、单向多对一:在房屋类里面写房屋类型的对象,同理把相关的键值去掉;
在映射文件中<many-to-one name="房屋类型对象" class="房屋类型类" column="房屋类型在房屋类里面相关的外键" cascade="save-update"> </many-to-one> (在配置的时候,同时需要再映射文件中删除关联的外键列)
2、双向的多对一,也就是(房屋类——房屋类型:→多对一;(房屋类型——房屋类→一对多)就为双向的了,配置原理如上;
额,打的不知道清不清楚,希望能帮到你!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询