swagger 将 table 中的属性显示为重复
swagger shows attributes in a table as duplicate
我试图创建一个关系数据库。我想将用户 table 中的 ID、电子邮件、密码和电话列添加到雇主和雇员 table 中。我创建了如下代码所示的结构。
package hasancanozbek.hrms.Entities.concretes;
import hasancanozbek.hrms.Entities.abstracts.User;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.*;
@Data
@AllArgsConstructor
@NoArgsConstructor
@Entity
@Table(name = "employers")
public class Employer {
@Id
@Column(name = "user_id")
private int userId;
@Column(name = "company_name")
private String companyName;
@Column(name = "company_website")
private String companyWebsite;
@Column(name = "verified")
private boolean verified;
@OneToOne
@MapsId
@JoinColumn(name = "user_id")
private User user;
}
package hasancanozbek.hrms.Entities.abstracts;
import com.fasterxml.jackson.annotation.JsonIgnore;
import hasancanozbek.hrms.Entities.concretes.Employer;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.*;
@Data
@AllArgsConstructor
@NoArgsConstructor
@Entity
@Table(name = "users")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private int id;
@Column(name = "email")
private String email;
@Column(name = "password")
private String password;
@Column(name = "telephone")
private String telephone;
@OneToOne(mappedBy = "user")
@PrimaryKeyJoinColumn
@JsonIgnore
private Employer employer;
}
但是在swagger中添加雇主时ui,每个属性显示2次。例如,雇主 table 的公司名称为 属性,此 属性 大摇大摆地显示为 companyName 和 user.employer.companyName。我只想组合并显示相关 table 的属性以及用户 table 的属性。我该如何解决?
Swagger SS
我解决了这个问题。我向用户 table 添加了来自 javax.persistence.
的注释
@Inheritance(strategy = InheritanceType.JOINED)
我从用户 class 那里继承了雇主 class。
我在第 15 行的 @Table 下添加了以下注释。
@PrimaryKeyJoinColumn(name = "user_id", referencedColumnName = "id")
这样,我就把用户table中的id值赋给了tables的table列,也就是我的基础table连接到它。 name 参数是您要为其赋值的列,referencedColumName 参数是您在基 table.
中的主键值
我试图创建一个关系数据库。我想将用户 table 中的 ID、电子邮件、密码和电话列添加到雇主和雇员 table 中。我创建了如下代码所示的结构。
package hasancanozbek.hrms.Entities.concretes;
import hasancanozbek.hrms.Entities.abstracts.User;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.*;
@Data
@AllArgsConstructor
@NoArgsConstructor
@Entity
@Table(name = "employers")
public class Employer {
@Id
@Column(name = "user_id")
private int userId;
@Column(name = "company_name")
private String companyName;
@Column(name = "company_website")
private String companyWebsite;
@Column(name = "verified")
private boolean verified;
@OneToOne
@MapsId
@JoinColumn(name = "user_id")
private User user;
}
package hasancanozbek.hrms.Entities.abstracts;
import com.fasterxml.jackson.annotation.JsonIgnore;
import hasancanozbek.hrms.Entities.concretes.Employer;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.*;
@Data
@AllArgsConstructor
@NoArgsConstructor
@Entity
@Table(name = "users")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private int id;
@Column(name = "email")
private String email;
@Column(name = "password")
private String password;
@Column(name = "telephone")
private String telephone;
@OneToOne(mappedBy = "user")
@PrimaryKeyJoinColumn
@JsonIgnore
private Employer employer;
}
但是在swagger中添加雇主时ui,每个属性显示2次。例如,雇主 table 的公司名称为 属性,此 属性 大摇大摆地显示为 companyName 和 user.employer.companyName。我只想组合并显示相关 table 的属性以及用户 table 的属性。我该如何解决? Swagger SS
我解决了这个问题。我向用户 table 添加了来自 javax.persistence.
的注释@Inheritance(strategy = InheritanceType.JOINED)
我从用户 class 那里继承了雇主 class。 我在第 15 行的 @Table 下添加了以下注释。
@PrimaryKeyJoinColumn(name = "user_id", referencedColumnName = "id")
这样,我就把用户table中的id值赋给了tables的table列,也就是我的基础table连接到它。 name 参数是您要为其赋值的列,referencedColumName 参数是您在基 table.
中的主键值