我的编程空间,编程开发者的网络收藏夹
学习永远不晚

SpringDataJpa创建联合索引的实现

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

SpringDataJpa创建联合索引的实现

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)

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

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

SpringDataJpa创建联合索引的实现

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

下载Word文档

猜你喜欢

MYSQL创建联合索引

在创建表的时候即指定联合索引,例如 -- 如果存在表,则删除DROP TABLE IF EXISTS core_fund_shares -- 创建表CREATE TABLE `core_fund_shares` ( `fund_code`
2023-08-30

mysql怎么创建联合索引

在MySQL中,可以使用CREATE INDEX语句来创建联合索引。创建联合索引的语法如下:CREATE INDEX index_name ON table_name (column1, column2, ...);其中,index_n
mysql怎么创建联合索引
2024-02-29

pgsql怎么创建联合索引

在 PostgreSQL 中,可以使用 `CREATE INDEX` 语句来创建联合索引。联合索引是指在多个列上创建的索引,可以同时对这些列进行检索。以下是创建联合索引的语法:CREATE INDEX index_name ON tab
2023-10-27

mysql的联合索引(复合索引)的实现

联合索引 本文中联合索引的定义为(MySQL):ALTER TABLE `table_name` ADD INDEX (`col1`,`col2`,`col3`);联合索引的优点 若多个一条SQL,需要多个用到两个条件SELECT * FR
2022-05-29

Spring DataJpa如何创建联合索引

本篇内容主要讲解“Spring DataJpa如何创建联合索引”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Spring DataJpa如何创建联合索引”吧!SpringDataJpa创建联合索
2023-06-22

怎么创建联合索引的sql语句

要创建联合索引,你需要使用CREATE INDEX语句,并在索引名称后面列出要包含在索引中的列名列表。以下是一个示例SQL语句来创建一个联合索引:```CREATE INDEX idx_name ON table_name (column1
2023-10-12

mysql创建联合索引的方法是什么

在 MySQL 中创建联合索引的方法是使用 CREATE INDEX 语句。语法如下:CREATE INDEX index_name ON table_name (column1, column2, …);例如,创建一个联合索引包含两
mysql创建联合索引的方法是什么
2024-04-09

mysql创建联合索引要注意哪些事项

创建联合索引时,需要注意以下事项:联合索引包含多个字段,字段的顺序会影响查询性能。一般来说,将最经常用于查询的字段放在索引的前面,可以提高查询效率。联合索引的字段顺序要符合查询的字段顺序,否则索引无法被有效利用。联合索引的字段数目要适量,过
mysql创建联合索引要注意哪些事项
2024-04-09

怎么在mysql中实现一个联合索引

这篇文章将为大家详细讲解有关怎么在mysql中实现一个联合索引,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。联合索引联合索引的定义为(MySQL):ALTER TABLE `table_na
2023-06-14

mysql怎么实现自动创建索引

在MySQL中,可以通过以下两种方式来实现自动创建索引:使用自动增加索引的功能:在创建表的时候,可以通过指定某个字段为自动增加索引来实现自动创建索引。例如,在创建表时,可以使用以下语句来创建一个包含自动增加索引的表:CREATE TABLE
mysql怎么实现自动创建索引
2024-05-23

es自动创建索引怎么实现

在Elasticsearch中,可以通过以下几种方式自动创建索引:动态映射(Dynamic Mapping):Elasticsearch会根据文档的字段自动推断其类型,并创建对应的索引。通过设置index.auto_create_index
2023-10-24

如何实现MySQL中创建索引的语句?

MySQL索引是提高数据检索速度的重要手段之一,它通过将数据存储在特定的数据结构中,加快了查询语句的执行速度。在MySQL中创建索引的语句非常简单,只需要在创建表的时候在相关字段后加上索引关键字即可。本文将为读者详细介绍如何在MySQL中创
如何实现MySQL中创建索引的语句?
2023-11-08

es创建索引和mapping的实例

这篇文章主要介绍了es创建索引和mapping的实例,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
2023-02-25

CMS与搜索引擎的强强联合:实现企业网站的搜索引擎优化

CMS作为网站内容管理系统,可以帮助企业轻松创建和管理网站内容,而搜索引擎作为用户查找信息的主要途径,对网站内容的可访问性和相关性有着严格的要求。通过将CMS与搜索引擎优化(SEO)相结合,企业可以显著提高网站在搜索结果中的排名,从而吸引更多流量并实现业务发展。
CMS与搜索引擎的强强联合:实现企业网站的搜索引擎优化
2024-02-05

mysql创建索引的3种方法实例

目录1、使用CREATE INDEX创建,语法如下:2、使用ALTER语句创建,语法如下:3、建表的时候创建索引补充:mysql 创建索引原则总结1、使用CREATE INDEX创建,语法如下:CREATEINDEXindexNameON
2023-02-15

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录