【发布时间】:2017-12-30 23:22:50
【问题描述】:
在休眠中,我在用户和角色之间创建了一对多的关系。 一个角色可以关联多个用户,但一个用户只能关联一个角色。
在用户类中,我有
@ManyToOne
@JoinColumn(name = "role_id")
private Role role_id;
在角色类中,我有
@OneToMany(mappedBy="role_id", fetch=FetchType.LAZY)
private Collection<User> userList = new ArrayList<User>();
如果我将新用户保存为:
{
"userName" : "Michael",
"role_id" : {
"id" : 8
}
}
即使角色表没有 id 为 8 的角色(并且角色表中没有任何条目),它也会保存用户。 我希望每当我保存具有不存在角色的用户时,我应该得到一个参照完整性错误。 我应该改变什么?
我的用户表创建为:
CREATE TABLE `users` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`email` varchar(255) DEFAULT NULL,
`mobile` varchar(255) DEFAULT NULL,
`username` varchar(255) NOT NULL,
`role_id` bigint(20) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `FK_abcdef` (`role_id`),
CONSTRAINT `FK_abcdef` FOREIGN KEY (`role_id`) REFERENCES `role` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
【问题讨论】:
-
请告知您究竟是如何持久化实体的?