Я не могу сгенерировать внешний ключ в моей сущности "Pet". Схема была успешно сгенерирована с использованием «spring.jpa.hibernate.ddl-auto = create», но мои таблицы не связаны из-за отсутствия внешнего ключа.
Я добавил "hibernate.dialect.storage_engine = innodb" в "applicationtion.properties", что ничего не дало, и я думаю, что InnoDB теперь по умолчанию является движком по умолчанию.
Pet.java
@Entity
@Table(name="pet")
public class Pet {
@Column(name="id")
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Id
private int id;
@Column(name="name")
private String name;
@Column(name="type_of_pet")
private String typeOfPet;
@ManyToOne(cascade={CascadeType.DETACH, CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH})
@JoinColumn(name="owner_id")
private Owner owner;
public Pet(String name, String typeOfPet) {
this.name = name;
this.typeOfPet = typeOfPet;
}
public Pet() {
}
Owner.java
@Entity
@Table(name="owner")
public class Owner {
@Column(name="id")
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Id
private int id;
@Column(name="name")
private String name;
@OneToMany(mappedBy="owner", cascade={CascadeType.DETACH, CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH})
private List<Pet> pets;
public Owner(String name) {
this.name = name;
}
public Owner() {
}
Все генерируется, кроме внешнего ключа, который я ожидал в таблице Pet.