zoukankan      html  css  js  c++  java
  • JPA创建主键索引、普通索引,组合索引,唯一索引

    一、引言

    @Table注解个人使用习惯

    1. javax.persistence 包下的@Table注解用于添加索引
    2. org.hibernate.annotations包下的@Table注解用于定义表名和添加表注释

    表名&表注释

    使用org.hibernate.annotations包下@Table注解;
    appliesTo用于定义表名;
    comment用来定义表注释。

    /**
     * @author zengwei
     * @email 1014483974@qq.com
     * @data 2021-06-02
     * 
     * 能日赚30的APP试玩平台推荐,亲测有效
     *(https://mp.weixin.qq.com/s/V5j45WYoyIvFsZbua56RSQ)
     */
    @Table(appliesTo = "admin", comment = "官方账号")
    

    在数据库中生成的表结构则有表注释,方便后期维护。
    在这里插入图片描述

    二、主键索引

    使用javax.persistence包下@Id@GeneratedValue注解;
    在指定字段上,加上@Id@GeneratedValue注解;
    @Id 注解可将实体Bean中某个属性定义为主键;
    GenerationType下有4种类型(4种主键生成策略)。

    我这里以主键自增举例

    /**
     * @author zengwei
     * @email 1014483974@qq.com
     * @data 2021-06-02
     */
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(columnDefinition = "int(11) comment 'id'")
    private Long id;
    

    三、普通索引

    能日赚30的APP试玩平台推荐,亲测有效

    使用javax.persistence包下@Table注解, @Index定义普通索引

    /**
     * @author zengwei
     * @email 1014483974@qq.com
     * @data 2021-06-02
     * 
     * 能日赚30的APP试玩平台推荐,亲测有效
     *(https://mp.weixin.qq.com/s/V5j45WYoyIvFsZbua56RSQ)
     */
    @Table(indexes = {
            @Index(columnList = "name"),
            @Index(columnList = "account")
    })
    

    在这里插入图片描述

    四、组合索引

    使用javax.persistence包下@Table注解,在@Index中的name参数命名相同的名称,columnList 参数写入对应字段名

    /**
      * @author zengwei
      * @email 1014483974@qq.com
      * @data 2021-06-02
      * 
      * 能日赚30的APP试玩平台推荐,亲测有效
      *(https://mp.weixin.qq.com/s/V5j45WYoyIvFsZbua56RSQ)
      */
    @Table(indexes = {
            @Index(name = "name_account", columnList = "name"),
            @Index(name = "name_account", columnList = "account")
    })
    

    在这里插入图片描述

    五、唯一索引

    1、单列唯一索引

    使用javax.persistence包下@Table注解,@UniqueConstraint指定单个字段名

    /**
      * @author zengwei
      * @email 1014483974@qq.com
      * @data 2021-06-02
      * 
      * 能日赚30的APP试玩平台推荐,亲测有效
      * (https://mp.weixin.qq.com/s/V5j45WYoyIvFsZbua56RSQ)
      */
    @Table(uniqueConstraints = @UniqueConstraint(columnNames= {"name"}))
    

    在这里插入图片描述

    2、单列唯一组合索引

    能日赚30的APP试玩平台推荐,亲测有效

    使用javax.persistence包下@Table注解,@UniqueConstraint指定多个字段名

    /**
      * @author zengwei
      * @email 1014483974@qq.com
      * @data 2021-06-02
      * 
      * 能日赚30的APP试玩平台推荐,亲测有效
      * (https://mp.weixin.qq.com/s/V5j45WYoyIvFsZbua56RSQ)
      */
    @Table(uniqueConstraints = @UniqueConstraint(columnNames= {"name", "account"}))
    

    在这里插入图片描述

    3、多列唯一组合索引

    使用javax.persistence包下@Table注解,uniqueConstraints 下指定多个@UniqueConstraint

    /**
      * @author zengwei
      * @email 1014483974@qq.com
      * @data 2021-06-02
      * 
      * 能日赚30的APP试玩平台推荐,亲测有效
      * (https://mp.weixin.qq.com/s/V5j45WYoyIvFsZbua56RSQ)
      */
    @Table(uniqueConstraints = {
            @UniqueConstraint(columnNames={"name", "del"}),
            @UniqueConstraint(columnNames={"account", "del"})
    })
    

    在这里插入图片描述

    未经允许,禁止转载

  • 相关阅读:
    清除所有缓存命令
    web前端工程师面试技巧 常见问题解答
    Web前端开发面试技巧
    JavaScript
    JavaScript Cookie
    JavaScript 计时事件
    javascript 弹窗
    JavaScript Window Navigator
    JavaScript Window History
    JavaScript Window Location
  • 原文地址:https://www.cnblogs.com/shiqiboy3974/p/14843394.html
Copyright © 2011-2022 走看看