SpringBoot - JPA保持@OneToMany关系密钥

时间:2017-08-24 23:22:55

标签: java spring-boot spring-data

我有一个名为Home.java的实体,它有一个List。 每个家庭都应该有一套(可能)不同的设施。

当我想创建一个带有便利设施的新家时,由于密钥的重复输入“1”,它会崩溃。

这是Home.java:

@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;

在Amenity.java中,我没有提到家。

@Entity

公共课程设施{

@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;
}

当我坚持下去的时候可行但是如果我用一些相同的设施创造一个新家,它会崩溃。

有什么想法吗?

提前致谢!!

1 个答案:

答案 0 :(得分:1)

我自己解决了。

看来我必须实现多对多关系。

谢谢大家!