Невозможно сгенерировать внешний ключ с Hibernate - PullRequest
0 голосов
/ 18 мая 2019

Я не могу сгенерировать внешний ключ в моей сущности "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.

1 Ответ

0 голосов
/ 22 мая 2019

Когда я добавил «spring.jpa.database-platform = org.hibernate.dialect.MySQL8Dialect» в «application.properties», внешний ключ был наконец добавлен.Это не будет работать, пока я использую "org.hibernate.dialect.MySQL5Dialect" (диалект по умолчанию).

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