hbm2ddl не работает для некоторого класса сущности в старом заявленном рабочем исходном коде - PullRequest
1 голос
/ 10 июля 2020

Мы получили заявленный рабочий исходный код. В коде все классы модели сущностей (hbm2 java) автоматически генерируются Hibernate Tools 4.0.0 (проверяется сгенерированным классом java docs). Мы пытаемся выполнить обратный инжиниринг для создания схемы базы данных из моделей с mysql базой данных.

MySQL: 5.1.46-community MySQL Connector: mysql -connector- java -5.1 .46 Hibernate: Hibernate3

Здесь мы сталкиваемся с множеством ошибок:

Too many key parts specified; max 16 parts allowed

Я вставляю код одного такого класса Entity, для которого мы получаем ошибку выше

@Entity
@Table(name = "ABC")
public class Abc implements java.io.Serializable {

    private AbcId id;

    public Abc() {
    }

    public Abc(AbcId id) {
        this.id = id;
    }

    @EmbeddedId
    @AttributeOverrides({
            @AttributeOverride(name = "a", column = @Column(name = "A", nullable = false)),
            @AttributeOverride(name = "b", column = @Column(name = "B", nullable = false, length = 10)),
            @AttributeOverride(name = "c", column = @Column(name = "C", nullable = false, length = 2)),
            @AttributeOverride(name = "d", column = @Column(name = "D", nullable = false)),
            @AttributeOverride(name = "e", column = @Column(name = "E", nullable = false, precision = 12)),
            @AttributeOverride(name = "f", column = @Column(name = "F", nullable = false, precision = 12)),
            @AttributeOverride(name = "g", column = @Column(name = "G", nullable = false, length = 400)),
            @AttributeOverride(name = "h", column = @Column(name = "H", length = 400)),
            @AttributeOverride(name = "i", column = @Column(name = "I", nullable = false, length = 1)),
            @AttributeOverride(name = "j", column = @Column(name = "J", nullable = false, length = 2)),
            @AttributeOverride(name = "k", column = @Column(name = "K", nullable = false, length = 1)),
            @AttributeOverride(name = "l", column = @Column(name = "L", nullable = false, length = 100)),
            @AttributeOverride(name = "m", column = @Column(name = "M", length = 100)),
            @AttributeOverride(name = "n", column = @Column(name = "N", nullable = false, length = 23)),
            @AttributeOverride(name = "o", column = @Column(name = "O", nullable = false, length = 100)),
            @AttributeOverride(name = "p", column = @Column(name = "P", length = 23)),
            @AttributeOverride(name = "q", column = @Column(name = "Q", length = 100)),
            @AttributeOverride(name = "r", column = @Column(name = "R", nullable = false, length = 100)) })
    public AbcId getId() {
        return this.id;
    }

    public void setId(AbcId id) {
        this.id = id;
    }
}

Это автоматически созданный класс Hibernate Tools 4.0.0

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...