我使用过 MySQL、Spring Boot 和 JPA 。我想生成一个表,该表在 Dto 类的 18 列上具有复合主值。类中共有 40 个变量/列
CompositeKeys.java
public class CompositeKeys implements Serializable {
private int column1;
private String column2;
.
.
.
private int column18;
Domain.java
@IdClass(CompositeKeys.class)
@Table(name = "table")
public class Domain implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private int column1;
@Id
private int column2;
.
.
.
@Id
private int column18;
private String column40;
Error Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Too many key parts specified; max 16 parts allowed at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[na:na]
请指导我如何解决这个问题。如果我在 SQL Server 上手动创建表并使用查询创建表,它将允许我创建这个 .我想使用域创建表
最佳答案
MySQL 不支持键中超过 16 列(在 https://dev.mysql.com/doc/refman/8.0/en/multiple-column-indexes.html 中搜索“索引最多可以包含 16 列”)。
因此 MySQL 不可能实现
关于java - Spring boot中的复合键超过16列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58941880/