带有额外列的 Spring Boot 多对多

问题描述 投票:0回答:1

我想使用 Spring Boot 创建具有额外列的多对多关系。 (示例:“UserRole”表有额外的“assignedAt”日期字段。) 例如,有3个表“User”、“Role”和“UserRole”。如果“userId=1”和“roleId=1”等记录已经添加到“UserRole”表中,我希望不再添加具有相同id值的记录,因为角色已经分配给用户。我们如何在 Spring 中创建实体来构建这个结构?

我寻找了一些例子,但我很困惑。您能给我举个例子或澄清一下吗?

java spring spring-boot spring-data-jpa many-to-many
1个回答
0
投票

您不能在 Hibernate 中执行此操作。在 JPA 中你不能这样做。您可以创建一个中间件表,该表与 n-m 关系的每一侧都有 1-n 关系。但这不是n-m关系。

n-m 关系是。

  1. 边翼的FK到PK
  2. 非拥有方的FK到PK
  3. 没有其他字段!

类似于分配给 n-m 关系的唯一方法是使用 Hibernate-Envers-Audit-plugin,这可能有点过头了,但 n-m 表仍然有 2 个字段。

© www.soinside.com 2019 - 2024. All rights reserved.