在Spring mvc 如何添加设置值到mysql

In Spring mvc How to add add set values to mysql

我的目标:

在 Spring MVC 中,我必须将手机 phone 联系人列表保存到数据库中。 示例:

       phone1  sonia 2554654 work
                     2554654  home

multiple phone_number with multiple phone_Number type

联系人table

id,
contact_name
phone_number
phone_type

在我的 java class 我有

public class ContactMobile {

  private String type;
  private String number;

  public ContactMobile() {
  }

  public ContactMobile(String type, String number) {
    super();
    this.type = type;
    this.number = number;
}

public String getType() {
    return type;
  }

  public void setType(String type) {
    this.type = type;
  }

  public String getNumber() {
    return number;
  }

  public void setNumber(String number) {
    this.number = number;
  }

}

这里我使用 SET 作为 phone 数字和类型

 @Entity
@Table(name = "_contact")
public class MobileContact {

  private String id;
  private String             fullname;
  private Set<ContactMobile> mobileNumbers;



  public MobileContact(String fullname, Set<ContactMobile> mobileNumbers) {
    super();
    this.fullname = fullname;
    this.mobileNumbers = mobileNumbers;
}

@Id
@Column(name = "Id")
public int getId() {
    return id;
}

public void setId(int id) {
    this.id = id;
}

@Column(name = "fullname")
public String getFullname() {
    return fullname;
  }

  public void setFullname(String fullname) {
    this.fullname = fullname;
  }


  public Set<ContactMobile> getMobileNumbers() {
    return mobileNumbers;
  }

  public void setMobileNumbers(Set<ContactMobile> mobileNumbers) {
    this.mobileNumbers = mobileNumbers;
  }

public MobileContact() {
    super();
}

}

我正在使用休眠来存储数据.. 我的问题在 MobileContact class 中

public Set<ContactMobile> getMobileNumbers() {
        return mobileNumbers;
      }

我必须在此处使用什么注释来保存多个 phone 号码?

MobileContact实体有多个ContactMobile,是OneToMany关系。在您的 ContactMobile table 中,您应该有一个字段用于 MobileContact 的 ID,例如 mobile_contact_id,并在您的 [=12] 中设置该字段的连接列,如下所示=]:

@OneToMany(fetch = FetchType.LEZY)
@JoinColumn(name = "mobile_contact_id")
private Set<ContactMobile> mobileNumbers;

您可以在 this 中获取有关关系的详细信息。

您可以将 Embeddables(而不是实体)用于非常简单的值对象,例如 MobileContact(这样它们就不需要 ID,并且不仅仅是没有自己身份的简单值对象)

@Embeddable
public class ContactMobile {... 
    //implement an equals and hashcode method!
}


public class MobileContact {
    ...

    @ElementCollection
    private Set<ContactMobile> mobileNumbers;
    ...
} 

@见Java Persistence/ElementCollection