我是第一次使用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
出于安全原因,我更改了一些内容,但正如您所看到的,列显然没有标记为外键。
我不知道我做错了什么,我在网上搜索了解释,但是每个帖子等我都说我用的是我正在使用的注释。
有谁知道我做错了什么?
提前致谢