笔记——Annotation 注解(hibernate3版本)

Annotation 注解(hibernate3版本)

1.Hibernate的annotation版本实际上使用的是javaEE中的JPA(java persistence api)所以需要导入一个jpa的jar包

2.实体类不再需要配置文件,使用注解即可

3.把实体类加入到主配置文件中

4.使用Annotation版本读取配置文件使用AnnotationConfiguration

 

* 1.用@interface来定义注解类

 *

 * 关键的问题是,看到这个注解需要干什么这个是一个复杂的过程

 *

 * 1.用java的反射判断一个类,或者一个方法或者成员变量...上面是否有注解

 *  

 *  

 * 2.注解默认是给java的编译器查看的

 *

 */

注意:

在创建表的功能中@ManyToOne@OneToOne没有任何区别

每一个注解都有两个功能:1.用来映射的 2.告诉hibernate是如何来加载数据

      

先写单向关联,单向关联的映射如果没有问题,再写双向关良

双向关联的另一端加注解已经不需要映射了,只需要提供加载数据的功能

mappedBy即可

 

在使用注解时:

    @ManyToOne

   @OneToOne

   //是在当前表中添加一个外键

   @OneToMany

   @ManyToMany

   //是多添加一张表

 

 

 

//元注解:可以加在注解上的注解

//Retention:用来指定当前的注解放在哪个阶段,给谁看,默认是给java编译器看

 

//Target:用来指定当前的注解可以放在类的什么位置

 

 

//如果注解中有且只有一个属性value的时候,写注解可以省略value=

 

注解放在属性上好,因为成员变量是私有的不应该让任何人访问

放在成员变量上,hibernate还需要判断你的成员变量上有没有这些注解。相当于让hibernate直接访问了你的成员变量

 

注解也放在get方法上(加载数据)。

 

同样,使用注解也可以表示四种映射

 

① ManyToOne (student—classes)

直接在student实体类中添加相关注解

 

在相关get方法上设置映射类型,以及外键关联

在表中设置主键,以及增长类型

然后在classes实体类也进行相关注解

 

Classes端对应于student应是OneToMany注解,但不需要映射了,只需要提供加载数据的功能 

 

 

 

②OneToOne

1.唯一外键关联


 

 

2.主键关联映射


③  ManyToMany

 

Teacher---course


 

Manytomany 与course的设置一致(中间表名  字段)

 

 

 

④ oneToMany 与manyToOne设置相近

 

 

如果使用的是0racle数据库,注解有所不同

Id的生成方式不同

 

 

 

 

需要添加一个sequenc.

同时 对于时间类型的属性可以设置相关注解来说明需要的类型

此处是具体日期+时间类型, 但还有时间,日期分开的类型参数

如果不希望某个属性在表中出现 可以设为瞬时的


 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值