JPA-2 基本注解
来源:互联网 发布:linux socket的值 编辑:程序博客网 时间:2024/04/29 08:57
JPA的基本注解主要包括@Entity、@Table、@Id、@GeneratedValue、@Basic、@Column、@Transient、@Temporal和@TableGenerator等。
其中,JPA基本注解的具体实现代码下载地址:http://download.csdn.net/download/bingbeichen/9805737。
1. @Entity
标注位置:实体类声明语句之前;
主要作用:标注该Java类为实体类,且将其映射到指定的数据库表。
// 例:默认将实体类Customer映射到数据库的CUSTOMER表上@Entitypublic class Customer { //... }
2. @Table
标注位置:实体类声明语句之前,与@Entity注释并列使用;
主要作用:标注当前实体类映射到数据库中的数据表名,当实体类与数据表名不同时使用。
// 例:将实体类Customer映射到数据库的CUSTOMERS表上@Table(name="CUSTOMERS")@Entitypublic class Customer { //... }
3. @Id
标注位置:实体类的属性声明语句之前,或属性的getter()方法之前;
主要作用:指定该实体类的当前属性映射到数据表的主键列。
// 例:将该实体类id属性映射到数据表的主键列@Idpublic Integer getId() { return id;}
4. @GeneratedValue
标注位置:与@Id注释配合使用;
主要作用:通过其strategy属性指定数据表主键的生成策略。默认情况下,JPA自动选择最适合底层数据库的主键生成策略,即SqlServer对应identity,而MySQL对应auto increment。
其中,在javax.persistence.GenerationType中定义了如下几种可供选择的主键生成策略:
// 例:采用外部表的方式来生成主键@TableGenerator(name="ID_GENERATOR", table="jpa_id_generators", pkColumnName="PK_NAME", pkColumnValue="ORDER_ID", valueColumnName="PK_VALUE", allocationSize=1)@GeneratedValue(strategy=GenerationType.TABLE, generator="ID_GENERATOR")// @GeneratedValue(strategy=GenerationType.AUTO)@Idpublic Integer getId() { return id;}
5. @Basic
标注位置:实体类的属性声明语句之前,或属性的getter()方法之前;
主要作用:标注将实体类的当前属性映射到数据库表的字段,对于没有任何标注的getter()方法,默认即为@Basic,其具有如下属性:
// 例:将该实体类email属性映射到数据库表的email字段public String getEmail() { return email;}
6. @Column
标注位置:实体类的属性声明语句之前,或属性的getter()方法之前;
主要作用:标注实体类的当前属性映射到数据库表的字段名,当属性名与数据表字段名不一致时使用。
标注将实体类的当前属性映射到数据库表的字段,对于没有任何标注的getter()方法,默认即为@Basic,其具有如下属性:
// 例:将该实体类name属性映射到数据库表的LAST_NAME字段@Column(name="LAST_NAME")public String getName() { return name;}
7. @Transient
标注位置:实体类的属性声明语句之前,或属性的getter()方法之前;
主要作用:标注实体类的当前属性不进行数据表字段的映射,ORM框架将忽略此映射,如实体类的getInfo()方法通常不需要映射到数据表的字段上。
8. @Temporal
标注位置:实体类的属性声明语句之前,或属性的getter()方法之前;
主要作用:标注实体类中Date类型(Java核心API中未定义Date类型的精度)的属性映射到数据表字段的具体精度(数据库中Date类型的数据有DATE、TIME和TIMESTAMP三种精度)。
// 例:将该实体类Date类型的createTime属性映射到数据库表TIMESTAMP精度的CREATE_TIME字段@Temporal(TemporalType.TIMESTAMP)@Column(name="CREATE_TIME")public Date getCreateTime() { return createTime;}// 例:将该实体类Date类型的birth属性映射到数据库表DATE精度的BIRTH字段@Temporal(TemporalType.DATE)public Date getBirth() { return birth;}
9. @TableGenerator:使用外部表生成主键
标注位置:实体类的属性声明语句之前,或属性的getter()方法之前;
主要作用:将当前主键的值单独保存到外部数据表中,每次从该外部表中查询获取其当前数据表的主键值;
对比优势:该主键生成策略可以适用于任何数据库,故更加易于数据库的移植。
@TableGenerator主要具有如下属性:
// 例:采用外部表的方式来生成主键@TableGenerator(name="ID_GENERATOR", table="jpa_id_generators", pkColumnName="PK_NAME", pkColumnValue="CUSTOMER_ID", valueColumnName="PK_VALUE", allocationSize=1)@GeneratedValue(strategy=GenerationType.TABLE, generator="ID_GENERATOR")// @GeneratedValue(strategy=GenerationType.AUTO)@Idpublic Integer getId() { return id;}
- JPA-2 基本注解
- JPA基础知识----JPA 基本注解,JPA API
- JPA基本属性注解
- JPA基本属性注解
- JPA基本属性注解
- JPA基本属性注解
- JPA基本属性注解
- JPA 基本注解
- JPA的基本注解
- JPA 基本属性注解
- JPA基本注解
- jpa 注解2
- JPA 注解参考2
- 【转载】jpa 注解2
- JPA的注解的基本使用
- JPA注解
- JPA注解
- JPA注解
- 装饰设计模式(Decorator)-IO
- TRF7970 读取二代身份证 ID号 程序 TRF7960A TRF7960 TRF7970A
- 寒假作业
- submit 的4种写法
- HDU
- JPA-2 基本注解
- 51nod 1127
- [Ubuntu]: Installation of create
- dp专题 第二十六题 滑雪
- ADV-9-算法提高-递归倒置字符数组
- BigDecimal类的加减乘除
- Scala解析Json字符串
- 二维数组的创建
- epoch、 iteration 和 batchsize 的理解