JPA的基本注解

      JPA支持XML和JDK 5.0注解两种元数据的形式,元数据描述对象和表之间的映射关系,框架据此将实体对象持久化到数据库表中。其中注解方式简单快捷高效,在开发中强烈推荐,文中主要总结了一些常用而重要的注解。

      JPA通常的注解方式方式包括:基于属性(property-based)和基于字段(field-based)   Note:同一个实体类中必须并且只能使用其中一种注解方式

           基于字段的注解, 就是直接将注解放置在实体类的字段的前面

           基于属性的注解, 就是直接将注解放置在实体类相应的getter方法前面(这一点和Spring正好相反)

      (1) @Entity

            用于实体类声明语句前,标识该POJO是一个jpa实体类,将映射到指定的数据库表。如声明一个实体类User,则映射到数据库中的user表上。

      (2) @Table(name = “user”)

            用于设置表名,当实体类与其映射的数据库表名不同名时,需要使用该标注,通常与@Entity标注并列使用,不加name,则表示默认为实体类名。

      (3) @Id

            用于设置主键,当实体类与其映射的数据库表名不同名时,需要使用该标注,通常与@Entity标注并列使用,不加name,则表示默认为实体类名。

    (4) @GeneratedValue(strategy=GenerationType.IDENTITY)

           用于标注主键的生成策略,默认情况,jpa自动选择一个最适合底层数据库的主键生成策略。sqlServer 对应identity,MySql对应 auto increment

           strategy:表示主键生成策略,有AUTO,INDENTITY,SEQUENCE 和 TABLE 4种,分别表示让ORM框架自动选择,根据数据库的Identity字段生成,根据数据库表的Sequence字段生成,以有根据一个额外的表生成主键,默认为AUTO。

     (5) @Basic(fetch=FetchType.LAZY,optional=true)

           用于简单属性到数据库表字段的映射,对于没有任何标注的get方法,默认为@Basic。

           fetch: 抓取策略,延时加载LAZY与立即加载EAGER,默认为EAGER。
           optional: 指定在生成数据库结构时字段是否允许为 null,默认为true。

     (6) @Column(length=15,nullable=false,columnDefinition="",insertable=true,scale=10,table="")

           用于注释指定字段的详细定义,最常用的属性是name,指定数据表列名;columnDefinition指定该字段在数据库中的实际类型,特别对于DATE类型

     (7) @Transient

           工具方法,表示该属性并非一个到数据库表的字段的映射,ORM框架将忽略该属性。如果一个属性并非数据库表的字段映射,必须标注,否则ORM框架默认为@Basic

     (8) Temporal(TemporalType.DATE)      

           用于注释DATE属性的精度,有TemporalType.DATE,TemporalType.TIME,TemporalType.TIMESTAMP时间类型格式。

   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值