码迷,mamicode.com
首页 > 其他好文 > 详细

JPA-基本注解

时间:2019-07-30 00:19:19      阅读:130      评论:0      收藏:0      [点我收藏+]

标签:name   实体   数据   oracl   数据库表   nal   basic   抓取   color   

1. @Entity:在实体类上进行标注,指出该Java类为实体类,将映射到指定的数据库表;

@Entitypublic class DeptEntity {}

2. @Table:当实体类与映射的表名不相同时,需要使用此注解标注,该注解与@Entity并列使用:

  》name:用于指定数据库的表名;

  》schema:用户指定数据库的名称;

@Entity
@Table(name = "dept", schema = "yootk")
public class DeptEntity {}

3. @Id:用于申明主键列,可以申明在属性上,也可以申明在get方法上

4. @GeneratedValue:用于标注主键的生成策略,通过strategy属性进行指定,默认情况下,JPA自动选择一个适合底层数据库的实现策略

  》strategy指定策略:

    GenerationType.IDENTITY:id自增,oracle不支持

    GenerationType.AUTO:自动选择合适策略

    GenerationType.SEQUENCE:通过序列生成主键,通过@SequenceGenerator()注解指定序列名,MySql不支持

    GenerationType.TABLE:通过表产生主键,框架借由表模式序列产生主键,使用该策略更易于数据库的移植

@Entity
@Table(name = "dept", schema = "yootk")
public class DeptEntity {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private long deptno;
}

5. @Basic:表示属性到数据库表的字段的映射,默认为@Basic,可以不用写

  》fetch: 表示该属性的读取策略,有 EAGER 和 LAZY 两种,分别表示主支抓取和延迟加载,默认为 EAGER.
  》optional:表示该属性是否允许为null, 默认为true

6. @Column:当实体的属性与其映射的数据库表的列不同名时需要使用,当字段名称相同时,可以不用写

    @Basic
    @Column(name = "dname")
    private String dname;

7. @Transient:表示该属性并非一个到数据库表的字段的映射,ORM框架将忽略该属性,如果一个属性并非数据库表的字段映射,就务必将其标示为@Transient,否则,ORM框架默认其注解为@Basic

    @Transient
    private Double avgsal;

 

JPA-基本注解

标签:name   实体   数据   oracl   数据库表   nal   basic   抓取   color   

原文地址:https://www.cnblogs.com/luliang888/p/11267353.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!