Hibernate—— 注解

Hibernate—— 注解_第1张图片

类级别注解

1、使用注解的目的:为了简化繁琐的ORM映射文件(*.hbm)的配置

2、JPA与Hibernate的关系

.什么是JPA?(全称Java Persistence API(java持久化的API接口));JPA注解是JAVAEE的标准和规范

.JPA 是标准接口,Hibernate是实现,但是其功能是JPA的超集。

.Hibernate通过hibernate-annotation,hibernate-entitymanager,hibnernate-core三个组件来实现JPA。

.一般在实际开发中,优先考虑使用JPA注解,这样更有利与程序的移植和扩展。

3、Hibernate注解的分类

类级别的注解,属性级别注解,映射关系注解

类级别的注解.@Entity——表示实体类(一个实体类对应数据库中的一张表)

类级别的注解.@Table

类级别的注解.@Embeddable——表示它是嵌入类

类级别的注解.Schema 和 catalog

Hibernate—— 注解_第2张图片

4、

5、Hibernate类级别注解之@Entity注解

Hibernate—— 注解_第3张图片
Hibernate—— 注解_第4张图片

hibernate 配置文件

Hibernate—— 注解_第5张图片

实体类1

Hibernate—— 注解_第6张图片

实体类2

Hibernate—— 注解_第7张图片

测试类

6、Hibernate类级别注解之@Table注解

Hibernate—— 注解_第8张图片
Hibernate—— 注解_第9张图片

一个数据库必然属于一个schema(模式),一个schema必然属于一个catalog(目录),一个模式包含了一个数据库的对象,例如表、视图等

从实现的角度来看,各种数据库系统对Catalog和Schema的支持和实现方式千差万别的。

Hibernate—— 注解_第10张图片
Hibernate—— 注解_第11张图片

其他的跟 5 一样

7、Hibernate类级别注解之@Embeddable注解

Hibernate—— 注解_第12张图片
Hibernate—— 注解_第13张图片

@Embeddable

属性级别注解

1、添加方式

一是写在属性字段上面;二是写在属性的get访问器的上面

2、注解分别有 (加粗的)

@Id、@SequenceGenerator、@GeneratedValue、@Column、@Embedded、@EmbeddedId、@Lob、@Version、@Basic、@Transient

3、Hibernate属性级别注解之@Id注解

Hibernate—— 注解_第14张图片

设置主键

Ps1:对于复合主键,实体类必须实现serializable接口(声明式接口,不需要实现任何方法)。

Ps2:将 String类型 的属性设置成主键是一定要指定该属性的长度,可以用 Column( length=8) 注解来指定,不然 MySQL 会默认让其长度为255,而 MySQL 主键的长度不允许太长。(即使,Ps1成功实现,但是如果Ps2不通过,即使Junit变为绿条,表也创建不成功)

4、Hibernate属性级别注解之@GeneratedValue注解

Hibernate—— 注解_第15张图片

主键生成策略

Hibernate—— 注解_第16张图片

第四点 例子

String类型做主键,@GenericGenerator()

Hibernate—— 注解_第17张图片

例子

Hibernate—— 注解_第18张图片

添加一名学生信息

5、Hibernate属性级别注解之@Column注解

Hibernate—— 注解_第19张图片

6、Hibernate属性级别注解之@Embedded注解

Hibernate—— 注解_第20张图片
Hibernate—— 注解_第21张图片

7、Hibernate属性级别注解之@EmbeddedId注解

Hibernate—— 注解_第22张图片
Hibernate—— 注解_第23张图片

复合主键

Hibernate—— 注解_第24张图片

测试类

8、Hibernate属性级别注解之@Transient注解

Hibernate—— 注解_第25张图片

相当于 设置保密的字段,不映射成表的字段

Hibernate关联映射注解

1、Hibernate关联映射注解之实体之间的关系

Hibernate—— 注解_第26张图片

2、Hibernate关联映射注解之 一对一 单向 外键关联

Hibernate—— 注解_第27张图片

pid相当于,被控类的主键

Hibernate—— 注解_第28张图片

配置类

Hibernate—— 注解_第29张图片

测试类

3、Hibernate关联映射注解之 一对一双向 外键关联

Hibernate—— 注解_第30张图片
Hibernate—— 注解_第31张图片

测试类跟上面一样

4、Hibernate关联映射注解之一对一单向外键联合主键

Hibernate—— 注解_第32张图片

具体看:7、Hibernate属性级别注解之@EmbeddedId注解

5、Hibernate关联映射注解之多对一单向外键关联

Hibernate—— 注解_第33张图片

这里的JoinColumn 参数的解释写反了

Hibernate—— 注解_第34张图片
Hibernate—— 注解_第35张图片
Hibernate—— 注解_第36张图片

测试类

6、Hibernate关联映射注解之一对多单向外键关联

Hibernate—— 注解_第37张图片
Hibernate—— 注解_第38张图片
Hibernate—— 注解_第39张图片

注意跟第5点 进行对比

7、Hibernate关联映射注解之一对多双向外键关联

Hibernate—— 注解_第40张图片
Hibernate—— 注解_第41张图片

其他的保持不变,测试类一样

8、Hibernate关联映射注解之 多对多 单向外键关联

Hibernate—— 注解_第42张图片
Hibernate—— 注解_第43张图片
Hibernate—— 注解_第44张图片
Hibernate—— 注解_第45张图片

测试类

9、Hibernate关联映射注解之 多对多双向 外键关联

Hibernate—— 注解_第46张图片
Hibernate—— 注解_第47张图片

作者:屌事不扣币

链接:http://www.jianshu.com/p/f1b91943c88c

來源:

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

你可能感兴趣的:(Hibernate—— 注解)