【发布时间】:2020-10-23 08:06:05
【问题描述】:
您好,我正在使用 JPA,我需要使用 OneToMany 和 ManyToOne,它适用于一个寄存器,但是当我插入多个寄存器时,结果包含在可连接中注册的所有数据。
例子:
我有以下表,User 和 Company,以及 Join 表 USER_COMPANY_REL
表用户
USER_ID
NAME
ADDRESS
...
餐桌公司
COMPANY_ID
NAME
WEB_SITE
...
USER_COMPANY_REL
REL_ID
USER_ID
COMPANY_ID
我有 3 个用户和 2 个公司的数据,如果我的 USER_COMPANY_REL 表中有一个用户与一个公司,它可以工作,如果我将同一用户与另一家公司一起工作,但当我将另一个用户与另一家公司,当我从某个用户(注册了一个或多个公司)那里获取数据时,结果是:用户信息加上在 Join 表中注册的公司数。
我的 Spring Boot 代码中有这个
类公司
...
@ManyToOne
@JoinTable(name = "USER_COMPANY_REL",
joinColumns = {@JoinColumn(name = "COMPANY_ID", insertable = false,
updatable = false, referencedColumnName = "COMPANY_ID")},
inverseJoinColumns = {@JoinColumn(name = "USER_ID", insertable = false,
updatable = false, referencedColumnName = "USER_ID")}
)
private User user;
...
类用户
...
@OneToMany
@JoinTable(name = "USER_COMPANY_REL",
joinColumns = {@JoinColumn(name = "USER_ID", referencedColumnName = "USER_ID")},
inverseJoinColumns = {@JoinColumn(name = "COMPANY_ID", referencedColumnName = "COMPANY_ID")}
)
...
为什么会这样?你能帮帮我吗?
问候
【问题讨论】:
标签: java oracle spring-boot jpa relationship