我的目标 :

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

       phone1  sonia 2554654 work
                     2554654  home


具有多个phone_Number类型的多个phone_number

联系人表

id,
contact_name
phone_number
phone_type


在我的java课上

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作为电话号码和类型

 @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类中

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


我必须在这里使用什么注释来保存多个电话号码?

最佳答案

MobileContact实体有很多ContactMobile,它是一个OneToMany关系。在ContactMobile表中,您应该有一个MobileContact的ID字段,例如mobile_contact_id,并在ContactMobile中的该字段上设置联接列,如下所示:

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


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

09-25 18:33