Hibernate—— 注解

类级别注解

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

4、

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

hibernate 配置文件
实体类1
实体类2


测试类

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

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

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

其他的跟 5 一样

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

@Embeddable

属性级别注解


1、添加方式

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

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

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

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

设置主键

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

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

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

主键生成策略
第四点 例子

String类型做主键,@GenericGenerator()

例子
添加一名学生信息

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

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

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

复合主键
测试类

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

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

Hibernate关联映射注解


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

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

pid相当于,被控类的主键
配置类
测试类


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

测试类跟上面一样

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

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

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

这里的JoinColumn 参数的解释写反了
测试类

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

注意跟第5点 进行对比

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

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

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

测试类

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

其他的地方跟第8点一样
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 类级别注解 1、使用注解的目的:为了简化繁琐的ORM映射文件(*.hbm)的配置 2、JPA与Hibernate的...
    波澜不惊_001阅读 793评论 1 5
  • JPA Java Persistence API----java持久化接口 Hibernate注解分类 类级别注解...
    蕊er阅读 577评论 0 2
  • 1.类级别注解 @Entity映射实体类 @Table映射数句库表 @Entity(name="tableName...
    苗義阅读 1,148评论 0 47
  • 使用注解的目的是简化繁琐的ORM映射文件(.hbm)的配置 JPA全称是java Persistence API(...
    曹达兴阅读 2,569评论 0 5
  • 实体类上的一些注解 标记在类上的注解 @Entity指明这是一个实体bean @Table指定要映射的数据库表, ...
    写java的逗比叫z1阅读 843评论 0 1