我正在使用 Spring + Hibernate JPAA。
我有一个实体:
A
id (PK)
Set<B> b;
otherProps…
B
id (PK)
String name; (unique)
otherProps…
并且有一个M到M的表链接A.id,B.id。
如果用户创建一个实体:
A.id = 0
A.b.id = 0
A.b.Name = "Admin";
它会保存,但会在 B 表中创建一个新条目。将 B 视为系统定义的“角色”表,它不应该改变。所以我希望它重新使用 Admin 并自动填充 id。该对象来自 REST api…在这种情况下调用者是否应该知道 id 和名称?或者他们应该只能通过 id 或名称填充?
遇到这种情况该如何处理呢?或者把id去掉,用名字作为PK会更好吗?
编辑:澄清...
用户实体角色实体UserRole表与User.Id、Role.Id M2M关系。
角色表包含: 1 用户 2 管理员 3 超级用户
那是我定义的固定表。不允许调用者添加角色。
因此,如果User1是用户,那么M2M表1,1中将会有一个条目。
现在,想象一下如果有人传入一个角色为“User”的新用户对象 User2。就像现在一样,它在 Roles id=4 value=User 中创建一个条目(重复条目),并在 M2M 表中创建一个 1,4,其中预期行为为 1,1,即重用现有的“用户”角色。
基本上,我想调用者知道用户 id 是有意义的,但我不确定调用者知道角色 id 是否有意义?似乎他们更了解可能的角色。有点像枚举类型的行为?
汪汪一只猫
相关分类