JPA / Hibernate连接表/连接列ID是否未标记为外键?

时间:2018-07-29 03:27:28

标签: mysql hibernate jpa spring-data-jpa

当我定义@OneToMany或@ManyToMany关系时,@ JoinColumn和@JoinTable的工作如预期;但是,当我在SQL Workbench中查看数据库时,联接列似乎没有被标记为外键。

例如,如果我的“用户” @Entity具有角色列表:

@JoinTable(
        joinColumns = {@JoinColumn(name = "user_id")},
        inverseJoinColumns = {@JoinColumn(name = "role_id")}
)
@ManyToMany
List<Role> roles;

生成的联接表可根据需要工作,但列仅是bigint的列,而不是外键。

除其他原因外,我希望将FK标记为这样,以便我可以自动生成关系图。

1 个答案:

答案 0 :(得分:1)

我当然会在发布问题后找到解决方案(而不是在之前的100次Google搜索中找到)

我必须将其放入Spring application.properties:

spring.jpa.database-platform: org.hibernate.dialect.MySQL5InnoDBDialect

默认引擎“ myISAM”显然不支持外键。