在Spring mvc中如何将添加集值添加到mysql

时间:2016-02-02 09:13:53

标签: java spring spring-mvc spring-annotations

我的目标:

在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();
}

}

我正在使用hibernate来存储数据.. 我的问题出在我的 MobileContact

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

我必须在这里用什么注释来保存多个语音?

2 个答案:

答案 0 :(得分:1)

MobileContact实体有很多ContactMobile,它是OneToMany关系。在您的ContactMobile表格中,您应该有一个MobileContact ID的字段,例如mobile_contact_id,并在ContactMobile中设置该字段的加入列,如下所示:< / p>

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

您可以在this

中详细了解该关系

答案 1 :(得分:0)

您可以将Embeddables(而非实体)用于非常简单的值对象,例如MobileContact(然后它们不需要ID,并且不仅仅是没有自己标识的简单值对象)< / p>

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


public class MobileContact {
    ...

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

@See Java Persistence/ElementCollection