спящая карта внутри карты - PullRequest
0 голосов
/ 27 февраля 2019

MappingException:

Внешний ключ (FKosq4t8lua3bsnnh206m2uw3ls: Quests_ex [questRecordEx_id]))) должен иметь такое же количество столбцов, что и первичный ключ, на который имеется ссылка (uests_ex [charID, questID]) *

* 55

абонент:

@ElementCollection
@OneToMany(cascade = CascadeType.ALL, orphanRemoval = true)
@CollectionTable(name = "quests_ex", joinColumns = {@JoinColumn(name = "charID")})
@MapKeyColumn(table = "quests_ex", name = "questID")
private Map<Integer, QuestEx> recordEx;

код:

@Entity
@Table(name = "quests_ex")
public class QuestEx {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private long id;

    private int questID;

    @ElementCollection
    @CollectionTable(name = "quests_ex_values")
    @MapKeyColumn(name = "qrkey")
    @Column(name = "qrvalue")
    private Map<String, String> values;
}

SQL:

  create table quests_ex (
    questexid bigint not null auto_increment,
    charid int,
    questID int,
    fk_questid int,
    primary key (questexid),
    foreign key (charid) references characters(id),
    foreign key (fk_questid) references quests_ex_values(id) on delete cascade
);

create table quests_ex_values (
    id bigint not null auto_increment,
    qrkey varchar(255),
    qrvalue varchar(255),
    primary key (id)
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...