【发布时间】:2016-11-21 00:41:45
【问题描述】:
我有两个表是 USER 实体有
@OneToMany
@JoinTable(name="user_roles")
private List<Role> roles;
角色实体有用户
@ManyToOne
private User user;
表 user_role 的描述是
Name Null
USER_RECORD_ID NOT NULL NUMBER(19)
ROLE_RECORD_ID NOT NULL NUMBER(19)
注意:一个用户可以有多个角色,我已经通过脚本创建了角色,有 Id:10001,10002,10003 等
在 user_role 角色表中,我插入了一个具有所有角色的用户 800001,因此该表看起来像
USER_RECORD_ID ROLE_RECORD_ID
800001 10001
800001 10002
800001 10003
800002 10001 ///This record will through me unique constraint error
因此,如果我尝试将角色分配给预定义角色的新用户,则会出现此错误
INSERT INTO USER_ROLE(USER_RECORD_ID,ROLE_RECORD_ID) VALUES(800002,10001)
错误报告 - SQL 错误:ORA-00001:违反唯一约束 (SYSTEM.UK_LPLHY51JOJA1LP4465QK2E0AF) 00001. 00000 - “违反了唯一约束 (%s.%s)” *原因:一个 UPDATE 或 INSERT 语句试图插入一个重复的键。 对于在 DBMS MAC 模式下配置的 Trusted Oracle,您可能会看到 如果在不同级别存在重复条目,则此消息。 *操作:要么删除唯一限制,要么不插入密钥。
【问题讨论】:
-
似乎是多对多...你不需要角色/用户和用户角色吗?
标签: mysql oracle hibernate jpa jpa-annotations