zoukankan      html  css  js  c++  java
  • JPA-基本注解

    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;
  • 相关阅读:
    generatorConfiguration详解
    fastjson java类、字符串、jsonObject之前的转换
    非CI执行Allure2 trends空白问题
    如何相互转换逗号分隔的字符串和List【转】
    搞服务器性能时有感
    EF实体实现链接字符串加密
    小程序接口测试之本地测试
    WebApi生成在线API文档--Swagger
    C# 调用IP库(QQWry.Dat)查询IP位置及自动升级IP库方法【转】
    懵逼的this指向
  • 原文地址:https://www.cnblogs.com/luliang888/p/11267353.html
Copyright © 2011-2022 走看看