外键与JPA

时间:2017-10-03 13:18:39

标签: mysql database jpa annotations foreign-keys

我是第一次使用JPA,但仍然遇到了一些问题。 同时我连接到我的数据库,JPA正在自动创建不存在的表。

我的问题是创建的表不会将表列定义为外键,我将其标记为。

以下是我在程序中声明外键的方法:

@ManyToOne(optional = false)
@JoinColumn(nullable = false, name = "ATT_ID")
private Attribute att;

作为数据库,我使用mysql社区服务器5.7.19,它将此显示为新创建的表的DDL

CREATE TABLE `TABLE` (
  `ID` int(11) NOT NULL,
  `FOREIGN_ID` int(11) NOT NULL,
  `FOREIGN_ID2` int(11) NOT NULL,
  PRIMARY KEY (`ID`),
  UNIQUE KEY `STUFF` (`ID`),
  KEY `STUFF` (`FOREIGN_ID`),
  KEY `STUFF` (`FOREIGN_ID2`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

出于安全原因,我更改了一些内容,但正如您所看到的,列显然没有标记为外键。

我不知道我做错了什么,我在网上搜索了解释,但是每个帖子等我都说我用的是我正在使用的注释。

有谁知道我做错了什么?

提前致谢

0 个答案:

没有答案