Не могу построить отношение между сущностями

Нужно сделать словарь, в схеме построил 3 таблицы (words, keys, dictionaries). У слова есть описание (перевод), у которого может быть несколько ключей, также у слова есть ссылка на словарь, которому оно принадлежит. Сначала писал через ManyToOne, попробовал через OneToOne, выдает такую же ошибку

Создал подходящие сущности, связывание слова со словарем работает , однако практическая идентичная запись связывания слова и ключа выдает ошибку

org.hibernate.tool.schema.spi.CommandAcceptanceException: Error executing DDL "alter table words add constraint FKu9ru6vvsxpu7bbaa68u28xod foreign key (Key_id) references keys (Id)" via JDBC Statement


SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'keys key2_ on word0_.Key_id=key2_.Id where word0_.Id=1' at line 1

Привожу сущности:

Word

@Entity
@Table(name = "words", schema = "dictionaries")
public class Word {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "Id")
private Integer id;

@OneToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "Key_id")
private Key key;

@Column(name = "Description")
private String description;

@OneToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "Dictionary_id")
private DictionaryDB dictionary;

Key

@Entity
@Table(name = "keys", schema = "dictionaries")
public class Key {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "Id")
private Integer id;

@Column(name = "Name")
private String name;

DictionaryDB

@Entity
@Table(name = "dictionaries", schema = "dictionaries")
public class DictionaryDB {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "Id")
private Integer id;

@Column(name = "Name")
@Enumerated(EnumType.STRING)
private DictionaryType type;

Ответы (0 шт):