Hibernate + Spring Boot:以某种方式将joinable用作实体吗?

假设我有由表PERSON_COMPANY连接的表PERSON和COMPANY,除了外键之外,我还存储有关update_date,create_date和连接状态的信息:

Hibernate + Spring Boot:以某种方式将joinable用作实体吗?

这是我在Person类中实现连接的方式,效果很好:

    @ManyToMany(fetch = FetchType.LAZY)
    @JoinTable(name = "person_contact",joinColumns = @JoinColumn(name = "person_id"),inverseJoinColumns = @JoinColumn(name = "company_id"))
    private List<Company> companyList;

当我尝试为PERSON_COMPANY表创建实体时出现问题,因为在某些情况下我需要一些信息:

@Entity
@Table(name="person_company")
public class PersonCompany {
   ...
}

我得到一个 SchemaManagementException:导出标识符[person_company]多次遇到。

是否还有一种方法可以将联接表用作实体?

我正在使用springboot并与mariaDB一起休眠。

chen123321bin 回答:Hibernate + Spring Boot:以某种方式将joinable用作实体吗?

喜欢

@ManyToMany
@JoinTable(name = "person_contact",joinColumns = @JoinColumn(name = "person_id"),inverseJoinColumns = @JoinColumn(name = "company_id"))
private List<PersonCompany> companyList;
,

尝试更改关系。 您将拥有两个一对多关系,而不是一对多关系。

人员实体

@OneToMany(fetch = FetchType.LAZY,(mappedBy = "person")
    private List<PersonCompany> personCompanyList;

公司实体

@OneToMany(fetch = FetchType.LAZY,(mappedBy = "company")
    private List<PersonCompany> personCompanyList;

人物公司实体

@Entity
@Table(name="person_company")
public class PersonCompany {
   ...

@ManyToOne
@JoinColumn(name = "person_id")
Person person

@ManyToOne
@JoinColumn(name = "company_id")
Company company
}
本文链接:https://www.f2er.com/3153623.html

大家都在问