我正在使用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是不可能的

09-10 08:11
查看更多