【问题标题】:Unable to generate foreign key with Hibernate无法使用 Hibernate 生成外键
【发布时间】:2019-05-22 06:42:29
【问题描述】:

我无法在我的“宠物”实体中生成外键。使用“spring.jpa.hibernate.ddl-auto=create”成功生成了模式,但由于缺少外键,我的表没有链接。

我将“hibernate.dialect.storage_engine=innodb”添加到“appliction.properties”中,但没有产生任何结果,我认为 InnoDB 现在是默认引擎。

宠物.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 表中的外键之外,所有内容都生成了。

【问题讨论】:

  • 保存这些 Owner 和 Pet 对象的代码是什么?
  • 你为什么要问?我还没有创建服务/DAO 层,因为我只是想建立架构。
  • 哦。我误解了你的问题。对于那个很抱歉 。我现在知道你的意思了
  • hibernate 使用什么方言(在应用程序启动期间记录)?如果在 application.properties 中启用 spring.jpa.show-sql=true,是否有任何关于外键的日志?对于测试 h2 数据库,我可以看到外键的正确创建。
  • 默认使用 MySQL5Dialect。我改成MySQL8Dialect,外键终于加进去了。

标签: mysql hibernate spring-boot


【解决方案1】:

当我将“spring.jpa.database-platform=org.hibernate.dialect.MySQL8Dialect”添加到“application.properties”时,外键终于被添加了。这在我使用“org.hibernate.dialect.MySQL5Dialect”(默认方言)时不起作用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-03-21
    • 2013-05-24
    • 2016-08-14
    • 2011-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多