- 1、本文档共3页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Hibernate关系映射1:单向N-1关联
Hibernate关系映射1:单向N-1关联
我最近在复习⼀下关于Hibernate关系映射的知识,看了书本的介绍以及视频。这⼏篇
客都是对学到知识的⼀点总结。当然,这些这是最基本的能够实现关联关系的配
置,在实际的使⽤中,还有很多参数需要根据情况来设置。但也算是对以后开发过程
中遇到遗忘的地⽅可以进⾏查阅。
在本⽂中使⽤的Demo也都已经上传到github 中,⾥边有详细的运⾏说明。Github地
址:HibernateRelationMapping
单向N-1关联
单向N-1关系,⽐如多个⼈对应⼀个地址,只需从⼈实体端可以找到对应的地址实
体,⽆须关系某个地址的全部住户。
单向 n-1 关联只需从 n 的⼀端可以访问 1 的⼀端。
域模型
从 Order 到 Customer 的多对⼀单向关联需要在Order 类中定义⼀个 Customer 属性, ⽽
在 Customer 类中⽆需定义存放 Order 对象的集合属性
关系数据模型
ORDERS 表中的 CUS OMER_ID 参照 CUS OMER 表的主键
Demo
Hibernate 使⽤ 元素来映射多对⼀关联关系many-to-one name=customer
class=Customer column=CUSTOMER_ID cascade=all /
name: 设定待映射的持久化类的属性的名字
column: 设定和持久化类的属性对应的表的外键
class :设定待映射的持久化类的属性的类型
cascade :意味着系统将先⾃动级联插⼊主表记录,也就是说先持久化Customer
对象,再持久化Person对象。开发时不建议使⽤该属性,建议使⽤⼿⼯的⽅
式。
下⾯是实体对象,分为Customer (顾客)和Order (订单),其中订单和顾客是N-1关
系。
ublic class Customer {
rivate Integer customerId;
rivate String customerName;
//省去get和set⽅法
}
ublic class Order {
rivate Integer orderId;
rivate String orderName;
rivate Customer customer;
//省去get和set⽅法
}
Customer .hbm .xml
hibernate-ma ing
class name=com.lihui.hibernate.single_n_1.Customer table
id name=customerId ty e=java.lang.Integer
column name=CUSTOMER_ID /
generator class=native /
/id
ro erty name=customerName ty e=java.lang.String
column name=CUSTOMER_NAME /
/ ro erty
/class
/hibernate-ma ing
Order .hbm .xml
hibernate-ma ing ackage=com.lihui.hibernate.single_n_1
class name=Order
table=ORDERS
id name=orderId ty e=java.lang.Integer
column name=ORDER_ID /
generator class=native /
/id
ro erty name=orderName ty e=java.lang.String
column name=ORDER_NAME /
/ ro erty
many-to-one name=customer class=Customer column=CUS
/class
文档评论(0)