Java SpringBoot-JPA持久化@OneToMany关系重复条目';1';钥匙
我有一个名为Home.java的实体,它有一个列表。 每个家庭都应该有(可能)不同的设施 当我想用它的便利设施建造一个新家时,它会崩溃,因为钥匙的重复输入“1” 这是Home.java:Java SpringBoot-JPA持久化@OneToMany关系重复条目';1';钥匙,java,spring-boot,spring-data,Java,Spring Boot,Spring Data,我有一个名为Home.java的实体,它有一个列表。 每个家庭都应该有(可能)不同的设施 当我想用它的便利设施建造一个新家时,它会崩溃,因为钥匙的重复输入“1” 这是Home.java: @Entity property="id") public class Home { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Integer id; @ManyToOne @JoinColumn(name = "use
@Entity
property="id")
public class Home {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
@ManyToOne
@JoinColumn(name = "user_id")
private User user;
private String title;
private String subTitle;
private String shortDescription;
private String description;
private String typeOfPlace;
private Integer amountGuests;
private Boolean dedicatedToGuests;
private Integer bathrooms;
private Boolean bathroomPrivate;
@ElementCollection
private List<Amenities> amenities;
@OneToOne
private Address address;
@ElementCollection
private List<String> pictures;
@OneToOne
private Zone zone;
private Integer maxPeople;
private Double cost;
private Integer rooms;
private Integer beds;
@DefaultValue("false")
private Boolean sponsored;
@DefaultValue("0")
private Double rate;
@DefaultValue("false")
private Boolean published;
private Float lat;
private Float lng;
公共设施{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
private String name;
private String imageUrl;
private String icon;
public Amenities() {
}
public Amenities(String name, String imageUrl) {
this.name = name;
this.imageUrl = imageUrl;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getImageUrl() {
return imageUrl;
}
当我坚持的时候,它会起作用,但如果我用同样的设施建造一个新家,它就会崩溃
有什么想法吗
提前谢谢!!我自己修好了
看起来我不得不实现多对多关系
谢谢大家!看来您正在将同一主键保存到数据库中,这就是为什么会出现错误重复条目,请附上完整的代码,我们可以分析它如何显示您的代码!是的,我们需要您的代码来帮助您确定。您的主实体是否使用PK的自动生成策略进行注释。例如@GeneratedValue(strategy=GenerationType.AUTO)。并确保在保留新字段之前未在Home上设置主键字段。使用代码更新了帖子。问题似乎出在关系表Home_便利设施中。在该关系表中,当必须为不同的Home id复制便利设施id时,它强制便利设施id是唯一的。
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
private String name;
private String imageUrl;
private String icon;
public Amenities() {
}
public Amenities(String name, String imageUrl) {
this.name = name;
this.imageUrl = imageUrl;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getImageUrl() {
return imageUrl;
}