我正在使用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;
错误
引起原因:com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:指定的关键部分太多;最多允许16个零件
在java.base / jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)〜[na:na]
请指导我如何解决这个问题。如果我在SQL Server上手动创建表并使用查询创建表,它将允许我创建此表。我想使用域创建表
最佳答案
MySQL的键中最多支持16列(在https://dev.mysql.com/doc/refman/8.0/en/multiple-column-indexes.html中搜索“一个索引最多可以包含16列”)。
因此,使用MySQL是不可能的