我在SQL中有以下内容:
CREATE TABLE `user` (
`id` int(11) NOT NULL,
`power_id` int(11) NOT NULL
)
ALTER TABLE `user`
ADD PRIMARY KEY (`id`),
ADD UNIQUE KEY `power_id` (`power_id`),
ALTER TABLE `user`
ADD CONSTRAINT `FK_user_power` FOREIGN KEY (`power_id`) REFERENCES `power` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION;
CREATE TABLE `power` (
`id` int(11) NOT NULL,
`updated_date` date NOT NULL
)
(手打字)
但是,当我执行view Persistence -> Generate Persistance Mapping -> By Database Schema
时,它在User实体类中生成了此代码:
private PowerEntity powerByPowerId;
@ManyToOne
@JoinColumn(name = "power_id", referencedColumnName = "id", nullable = false)
public PowerEntity getPowerByPowerId() {
return powerByPowerId;
}
这显然是1:n关系(例如,多个用户拥有一种力量),而sql则是1:1关系。
现在我不确定我的sql错误还是intelij生成了错误的关系。
如何处理?我的数据库架构并不小,到目前为止我只注意到了这个错误,但是我不确定它是我的错还是intelij的映射产生了错误的实体表(这意味着我可以找到另一个生成错误的实体)。
感谢帮助。