java - 如何使用 JPA 以编程方式创建长度有限的 MySQL 索引?

标签 java mysql spring jpa

类似于here我正在用

注释我的类(class)
@Table(indexes = {@Index(columnList = "name")}) 

它试图创建一个具有 varchar 列最大长度的非唯一索引。不幸的是,这是不可能的,因为它是 utf8mb4 类型的 varchar(255) 列。 phpMyAdmin 通过单击 UI 中的相应按钮添加了 KEY '...' (name(191)),因此至少我的软件现在运行高效查询。

现在我想知道是否可以让我的 Java 类在创建数据库模式时自动生成长度有限的索引?该代码基于 spring-boot-starter-data-jpa:1.4.2.RELEASE

最佳答案

除了尝试让第 3 方软件做一些它可能允许或不允许的事情之外,还有其他答案。

  • 忍受 191 列大小的限制。或者,您真的有 191 到 255 之间的最大值吗?
  • 更改为 utf8(从 utf8mb4)。并失去存储表情符号和一些汉字的能力。
  • 5.6 中有一个笨拙的过程来提高您遇到的 767 限制。
  • 升级到 5.7,这几乎消除了问题。

关于java - 如何使用 JPA 以编程方式创建长度有限的 MySQL 索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42365149/

相关文章:

java - 复制和排序数组中的错误

java - 了解 Java 调试的真正工作原理

phpMyAdmin 无法连接到 MySQL 服务器

php - MySQL查询查找一周内的开始/结束时间之间的记录

java - 从 Spring Boot 1.5 迁移到 2,多个数据源上出现错误

java - 方法中的@ModelAttribute

java - 从 HashMap 获取匹配的对象类型

java - 解码时出现 JAXB 意外元素

php - 获取列注释多表/左连接

java - 将 Spring 应用程序部署到生产环境时人性化 URL 方案