广告
返回顶部
首页 > 资讯 > 后端开发 > Python >SpringDataJpa创建联合索引的实现
  • 761
分享到

SpringDataJpa创建联合索引的实现

2024-04-02 19:04:59 761人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

目录springDataJpa创建联合索引创建联合索引对应类创建映射实体类添加新数据SpringDataJpa指定联合索引在@Table中指定UniqueConstraint自动加上

SpringDataJpa创建联合索引

在这里插入图片描述

创建联合索引对应类



@Data
@Embeddable
public class VisualReexaminationUNIOnKey implements Serializable {
    @Column(name = "id")
    private String id;
    @Column(name = "c_review_date")
    private java.sql.Timestamp cReviewDate;
}

创建映射实体类


@Table(name = "qy_visual_reexamination")
@Entity
@Data
public class QyVisualReexamination {
    
    // 复合主键
    @EmbeddedId
    private VisualReexaminationUnionKey id;
    @Column(nullable = true, name = "c_clientid")
    private String cClientid;
    @Column(nullable = true, name = "c_ygscode")
    private String cYgscode;
    @Column(nullable = true, name = "c_primary_vision_r")
    private String cPrimaryVisionR;
    @Column(nullable = true, name = "c_primary_vision_l")
    private String cPrimaryVisionL;
    @Column(nullable = true, name = "c_ball_r")
    private String cBallR;
    @Column(nullable = true, name = "c_ball_l")
    private String cBallL;
    @Column(nullable = true, name = "c_pole_r")
    private String cPoleR;
    @Column(nullable = true, name = "c_pole_l")
    private String cPoleL;
    @Column(nullable = true, name = "c_axes_r")
    private String cAxesR;
    @Column(nullable = true, name = "c_axes_l")
    private String cAxesL;
    @Column(nullable = true, name = "c_add_r")
    private String cAddR;
    @Column(nullable = true, name = "c_add_l")
    private String cAddL;
    @Column(nullable = true, name = "c_check_r")
    private String cCheckR;
    @Column(nullable = true, name = "c_check_l")
    private String cCheckL;
    @Column(nullable = true, name = "c_proposal")
    private String cProposal;
    @Column(nullable = true, name = "c_com")
    private String cCom;
}

添加新数据


@Override
public Object addVisualReexamination(String id, String clientId, String reviewDate, String ygsCode, String primaryVisionR,
                                     String primaryVisionL, String ballR, String ballL, String poleR, String poleL, String axesR,
                                     String axesL, String addR, String addL, String checkR, String checkL, String proposal, String comId) {
    QyVisualReexamination bean = new QyVisualReexamination();
    // 生成联合索引
    VisualReexaminationUnionKey unionId = new VisualReexaminationUnionKey();
    unionId.setCReviewDate(Timestamp.valueOf(reviewDate));
    unionId.setId(id);
    bean.setId(unionId);
    bean.setCClientid(clientId);
    bean.setCYgscode(ygsCode);
    bean.setcprimaryVisionR(primaryVisionR);
    bean.setCPrimaryVisionL(primaryVisionL);
    bean.setCBallR(ballR);
    bean.setCBallL(ballL);
    bean.setCPoleR(poleR);
    bean.setCPoleL(poleL);
    bean.setCAxesR(axesR);
    bean.setCAxesL(axesL);
    bean.setCAddR(addR);
    bean.setCAddL(addL);
    bean.setCCom(comId);
    bean.setCCheckR(checkR);
    bean.setCCheckL(checkL);
    bean.setCProposal(proposal);
    QyVisualReexamination save = MQyVisualReexaminationDao.save(bean);
    return save.getId();
}

SpringDataJpa指定联合索引

如何,现在我的表里使用订单ID和产品ID作为唯一索引,那么需要在定义表实体类时

在@Table中指定UniqueConstraint


import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import javax.persistence.*;

@Entity
@Table(name = "t_product", uniqueConstraints = @UniqueConstraint(columnNames = {"orderId", "productId"}))
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
public class ProductItem {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    // 订单Id
    @Column(nullable = false, length = 32)
    private String orderId;
    // 受理产品编码
    @Column(length = 32)
    private String productId;
    // 产品名称
    @Column(length = 32)
    private String productName;
    // 时间戳
    @Column(length = 13)
    private Long timestamp;
}

把原来的t_product表drop掉,重启Spring Boot,再看该表

自动加上唯一索引了


Mysql> show index from t_product;
+-----------+------------+-----------------------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
| Table     | Non_unique | Key_name                    | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment |
+-----------+------------+-----------------------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
| t_product |          0 | PRIMARY                     |            1 | id          | A         |           2 |     NULL | NULL   |      | BTREE      |         |               |
| t_product |          0 | UK1mvw2lcd07t4cuicl4awfbgkw |            1 | order_id    | A         |           2 |     NULL | NULL   |      | BTREE      |         |               |
| t_product |          0 | UK1mvw2lcd07t4cuicl4awfbgkw |            2 | product_id  | A         |           2 |     NULL | NULL   | YES  | BTREE      |         |               |
+-----------+------------+-----------------------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
3 rows in set (0.00 sec)

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: SpringDataJpa创建联合索引的实现

本文链接: https://www.lsjlt.com/news/159431.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • SpringDataJpa创建联合索引的实现
    目录SpringDataJpa创建联合索引创建联合索引对应类创建映射实体类添加新数据SpringDataJpa指定联合索引在@Table中指定UniqueConstraint自动加上...
    99+
    2022-11-12
  • MYSQL创建联合索引
    在创建表的时候即指定联合索引,例如 -- 如果存在表,则删除DROP TABLE IF EXISTS core_fund_shares -- 创建表CREATE TABLE `core_fund_shares` ( `fund_code`...
    99+
    2023-08-30
    mysql 数据库
  • pgsql怎么创建联合索引
    在 PostgreSQL 中,可以使用 `CREATE INDEX` 语句来创建联合索引。联合索引是指在多个列上创建的索引,可以同时...
    99+
    2023-10-27
    pgsql
  • Spring DataJpa如何创建联合索引
    本篇内容主要讲解“Spring DataJpa如何创建联合索引”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Spring DataJpa如何创建联合索引”吧!SpringDataJpa创建联合索...
    99+
    2023-06-22
  • mysql的联合索引(复合索引)的实现
    联合索引 本文中联合索引的定义为(MySQL): ALTER TABLE `table_name` ADD INDEX (`col1`,`col2`,`col3`); 联合索引的优点 若多个一条SQL,需要多个...
    99+
    2022-05-29
    mysql 联合索引 mysql 复合索引
  • 怎么创建联合索引的sql语句
    要创建联合索引,你需要使用CREATE INDEX语句,并在索引名称后面列出要包含在索引中的列名列表。以下是一个示例SQL语句来创建...
    99+
    2023-10-12
    sql
  • mysql可不可以创建联合索引
    这篇文章主要介绍“mysql可不可以创建联合索引”,在日常操作中,相信很多人在mysql可不可以创建联合索引问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”mysql可不可以创...
    99+
    2022-10-19
  • MySQL创建联合索引报key长度超3072 bytes的[42000][1071]错误
    问题时这样的,我在建表时加了联合索引结果报key长度超过3072个字节了,如下图。 [42000][1071] Specified key was too long; max key length is 3072 bytes 先说解决方案...
    99+
    2023-09-01
    3072 bytes key too long InnoDB 767 bytes MySQL
  • 怎么在mysql中实现一个联合索引
    这篇文章将为大家详细讲解有关怎么在mysql中实现一个联合索引,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。联合索引联合索引的定义为(MySQL):ALTER TABLE ...
    99+
    2023-06-14
  • es自动创建索引怎么实现
    在Elasticsearch中,可以通过以下几种方式自动创建索引: 动态映射(Dynamic Mapping):Elastics...
    99+
    2023-10-24
    es
  • 如何实现MySQL中创建索引的语句?
    MySQL索引是提高数据检索速度的重要手段之一,它通过将数据存储在特定的数据结构中,加快了查询语句的执行速度。在MySQL中创建索引的语句非常简单,只需要在创建表的时候在相关字段后加上索引关键字即可。本文将为读者详细介绍如何在MySQL中创...
    99+
    2023-11-08
    MySQL索引创建 实现MySQL索引 创建MySQL索引语句
  • es创建索引和mapping的实例
    目录es创建索引和mapping索引和type分开创建索引和type一次创建更改elasticsearch中索引的mapping查看旧索引的mapping创建一个自定义mapping...
    99+
    2023-02-25
    es创建索引 es创建mapping es创建索引和mapping
  • MySQL中如何创建高效且合适的索引
    这篇文章主要介绍了MySQL中如何创建高效且合适的索引,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1. 当使用索引列进行查询的时候尽量不要...
    99+
    2022-10-18
  • mysql创建联合索引时字段的先后顺序,对查询的性能影响多大?
    创建联合索引时会遵循最左前缀匹配的原则,即最左优先,在检索数据时从联合索引的最左边开始匹配,当我们创建联合索引的时候,比如(column1, column2, column3)因为b+树建立索引是从左到右来建立搜索树的,所以(column2...
    99+
    2023-09-21
    sql 数据库
  • MySQL中两表关联的连接表怎么创建索引图文
    MySQL中两表关联的连接表怎么创建索引图文?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容,让我们一起来看看吧!问题介绍创建数据库的索引,可以选...
    99+
    2022-10-18
  • mysql创建索引的3种方法实例
    目录1、使用CREATE INDEX创建,语法如下:2、使用ALTER语句创建,语法如下:3、建表的时候创建索引补充:mysql 创建索引原则总结1、使用CREATE INDEX创建,语法如下: CREATEINDEXi...
    99+
    2023-02-15
    mysql创建索引语句 mysql索引创建 mysql添加索引语句
  • 如何在PHP中创建同步索引并实现实时更新?
    PHP是一种广泛使用的Web开发语言,其强大的功能和易用性使其成为了许多网站和应用程序的首选语言。在PHP中,我们经常需要使用索引来快速查找数据。本文将介绍如何在PHP中创建同步索引并实现实时更新。 什么是同步索引? 同步索引是一种数据结构...
    99+
    2023-10-29
    同步 索引 实时
  • MySQL该如何实现查看与创建以及删除索引
    下面一起来了解下MySQL该如何实现查看与创建以及删除索引,相信大家看完肯定会受益匪浅,文字在精不在多,希望MySQL该如何实现查看与创建以及删除索引这篇短内容是你想要的。    &nb...
    99+
    2022-10-18
  • sqlserver的表、视图、索引如何实现创建、修改、删除操作
    小编给大家分享一下sqlserver的表、视图、索引如何实现创建、修改、删除操作,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一...
    99+
    2022-10-19
  • SpringBoot整合Elasticsearch实现索引和文档的操作方法
    目录1、SpringBoot整合Elasticsearch的步骤2、索引的操作2.1 索引存在验证2.2  创建索引2.3 删除索引3、文档的...
    99+
    2022-11-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作