`
xp9802
  • 浏览: 1208124 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Hibernate菜鸟学习笔记

阅读更多

关系映射
一对一,一对多,多对一,多对多
1)怎么写Annotation
2)增删改查CRUD怎么写
一对一:单向(主键,外键),双向(主键,外键),中间表
一对多:单向,双向
多对一:单向,双向
多对多:单向,双向
集合映射,继承关系(不重要),组件映射

一对一:
如,husband,wife. A husband to A wife. 建立两个类,都有id,name两个属性
可在husband类中引用wife. 只是单向关系. 数据库有两张表,一个表是husband,一个表是wife
同样都是有id , name 两个字段 primary key(id).
设计方法有好多种.
1)主键关联.新增一个husband的时候,先看wife的id字段,有了,才可以创建
2)外键关联.在husband/wife表中加一个husband_id/wife_id
3)新增一个关系表.两个字段,一个是husband_id 参考husband表,另一个wife_id 参考wife表

a)一对一单向外键关联
1)Annotation
在husband类中有wife的引用
写@Entity @Id @GeneratedValue 在getWife前加@One2One
在wife类中
写@Entity @Id @GeneratedValue
@One2One 生成的表是,husband表中的外键默认为wife_id,要自己指定的话用
@JoinColumn(name="wifeid"),@JoinColumn可用在你自己建好了表,用这个来映射
2)xml
student - studentcard
在studentcard.hbm.xml中要写<many-to-one name="student" column="student_id" unique="true"> 
unique="true" 其实就是一对一    

b)一对一双向外键关联
1)Annotation
husband类中有wife的引用.在wife类中也有husband的引用
方法同单向,不过需要在两个类中都加@One2One,不过这个方法生成的表有点奇怪
会变成两个表中都有一个外键,就是有两个外键关系
解决方法: 在wife类中,@One2One(mappedBy="wife"),告诉hibernate,在husband类中有wife的引用
已经由getWife属性映射了.这时只会有wife_id,而不会两边都有xxx_id
凡是双向,一定要设mappedBy
2)xml
方法同单向,但是要在student.hbm.xml写<one-to-one name="studentcard" property-ref="student">
property-ref指定的跟Annotation中的mappedBy作用一样

c)一对一单向主键关联 (不重要)
1)Annotation
同一对一单向外键关联,只不过@JoinColumn变成了@PrimaryKeyJoinColumn即可
不过貌似有bug.不知道有没有更新.
2)xml
在studentcard.hbm.xml加 <one-to-one name="student">,不过这样没有自动生成外键联系
加上constrainted="true",就会帮你自动生成外键约束,<generator class="foreign"> 不能用native了.
<generator class="foreign">
<param name ="property">student</param>
</generator>

d)一对一双向主键关联 (不重要)
1)Annotation
同双向. 只不过@JoinColumn变成了@PrimaryKeyJoinColumn,不用mappedBy
2)xml
同单向? -- 没听清楚~ 不过不重要. 需要的时候再查.

e)一对一 联合主键
wife(name,id,age),husband(name,id,age),wifepk(name,id)
不在husband中@OneToOne下设@JoinColumn了,要改名或映射的话,要用@JoinColumns
要这样写
@JoinColumns(
{
 @JoinColumn(name="wifeId",referencedColumnName="id"),
 @JoinColumn(name="wifeName",referencedColumnName="name")
}
)

分享到:
评论

相关推荐

    Hibernate学习笔记

    Hibernate学习笔记 Hibernate学习笔记 Hibernate学习笔记 Hibernate学习笔记

    hibernate的学习笔记,hibernate所以知识点全,一看就能上手

    hibernate的学习笔记,hibernate所以知识点全,一看就能上手........包含代码和书写格式和图片分析~~~~hibernate的学习笔记,hibernate所以知识点全,一看就能上手........包含代码和书写格式和图片分析~~~~...

    Hibernate学习笔记整理

    Hibernate学习笔记整理 以下是 Hibernate 框架的详细知识点: Hibernate 介绍 Hibernate 是一个 ORM(Object-Relational Mapping)框架,用于将 Java 对象映射到数据库表中。它提供了一个简洁的方式来访问和操作...

    hibernate个人学习笔记完整版

    【hibernate个人学习笔记完整版】是一份详尽的资料,涵盖了Hibernate框架的基础到高级应用,旨在帮助学习者深入理解和掌握这一强大的Java对象关系映射(ORM)工具。Hibernate作为Java开发中的主流ORM框架,它极大地...

    Hibernate学习笔记特别详细

    《Hibernate学习笔记特别详细》 Hibernate,作为一款开源的Object-Relational Mapping(ORM)框架,为Java开发者提供了强大的数据库操作支持。它简化了数据库访问的复杂性,使得开发人员可以像操作对象一样操作...

    Hibernate的学习笔记

    Hibernate的学习笔记,希望对各位有一定的帮助。

    Hibernate3 学习笔记.ppt

    【一、O/R Mapping】 O/R Mapping,即对象关系映射,是将对象模型与关系数据库之间进行映射的技术。在Hibernate中,O/R Mapping允许开发者以面向对象的方式...学习和掌握Hibernate有助于提升Java应用的数据管理能力。

    hibernate 学习笔记精要

    hibernate 学习笔记精要hibernate 学习笔记精要hibernate 学习笔记精要hibernate 学习笔记精要

    Hibernate3.2学习笔记

    《Hibernate3.2学习笔记详解》 在Java开发中,ORM(Object-Relational Mapping)框架如Hibernate极大地简化了数据库操作,使得开发者可以更加专注于业务逻辑而不是底层的数据存取。本篇学习笔记将深入探讨Hibernate...

    Hibernate Annotation 学习笔记

    《Hibernate Annotation 学习笔记》 在Java的持久化框架中,Hibernate以其强大的功能和易用性成为开发者首选之一。而Hibernate Annotation则是Hibernate提供的一种基于注解的实体映射方式,它极大地简化了传统XML...

    传智播客2016hibernate框架学习笔记

    《传智播客2016 Hibernate框架学习笔记》是一份详实的教程,旨在帮助初学者和进阶者深入理解和掌握Hibernate框架。该资源包含了四天的学习内容,分别是day01、day02、day03和day04,涵盖了从基础到高级的多个主题。...

    hibernate 3.3学习笔记

    **hibernate 3.3学习笔记** 在深入探讨Hibernate 3.3的学习笔记之前,首先需要理解Hibernate是什么。Hibernate是一个强大的开源Java持久化框架,它简化了数据库操作,允许开发者将精力集中在业务逻辑上而不是数据库...

    hibernate框架学习笔记整理

    ### hibernate框架学习笔记整理 #### 一、Hibernate框架简介 **Hibernate框架**是一种用于Java应用的**对象关系映射**(Object-Relational Mapping, ORM)解决方案,它允许开发者使用面向对象的方式操作数据库中的表...

    hibernate-学习笔记

    【hibernate-学习笔记】 Hibernate 是一个强大的Java对象关系映射(ORM)框架,它为开发者提供了在Java应用程序中管理关系数据库数据的便捷方式。本学习笔记将深入探讨Hibernate的核心概念、配置、实体映射、查询...

    hibernate学习笔记

    在本篇《Hibernate学习笔记》中,我们将深入探讨Hibernate这一流行的Java对象关系映射(ORM)框架。Hibernate允许开发者以面向对象的方式处理数据库操作,极大地简化了数据存取的复杂性。以下是一些关键知识点: 1....

    Hibernate 学习笔记(全套)

    这套笔记是我学习Hibernate,进行相关技术点训练时记录下来的,其中包括技术点说明与相关事例,拿出来与大家分享。

    hibernate入门学习笔记+源码

    **hibernate入门学习笔记+源码** **一、Hibernate简介** Hibernate是一个开源的对象关系映射(ORM)框架,它简化了Java应用与数据库之间的交互。通过提供对象化的数据访问方式,Hibernate消除了传统JDBC代码中的...

    邹波老师Hibernate教程学习笔记

    《邹波老师Hibernate教程学习笔记》是针对Java开发者深入理解并掌握ORM框架Hibernate的重要参考资料。这是一份由个人在观看邹波老师的Hibernate视频教程后精心整理的学习笔记,旨在帮助初学者和有一定基础的程序员更...

Global site tag (gtag.js) - Google Analytics