关联表配置:
package com.nkrx.model;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import org.hibernate.annotations.GenericGenerator;
//------------------------------联系记录与项目关联表-----------------
@Entity
@Table(name = "NKRX_R_P_C")
public class ProjectCrecordModel implements Serializable {
private static final long serialVersionUID = -2607561259719235605L;
@Id
@GenericGenerator(name = "idGenerator", strategy = "assigned")
@GeneratedValue(generator = "idGenerator")
@Column(name = "Project_ID")
private String projectId;
@Id
@GenericGenerator(name = "idGenerator", strategy = "assigned")
@GeneratedValue(generator = "idGenerator")
@Column(name = "CONTACTRECORD_ID")
private String contactrecordId;
public String getProjectId() {
return projectId;
}
public void setProjectId(String projectId) {
this.projectId = projectId;
}
public String getContactrecordId() {
return contactrecordId;
}
public void setContactrecordId(String contactrecordId) {
this.contactrecordId = contactrecordId;
}
}
主表:主表使用@ManyToMany(mappedBy = “projectList”, fetch = FetchType.EAGER)
private List contactrecordList = new ArrayList();
的配置,project通过get,set可以直接调用对应的contactrecordList,
package com.nkrx.model;
import java.util.ArrayList;
import java.util.List;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToMany;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import org.codehaus.jackson.annotate.JsonIgnoreProperties;
import org.hibernate.annotations.GenericGenerator;
import com.nkrx.common.BaseModel;
import com.nkrx.model.ContactRecordModel;
//------------------------------项目名称表-----------------
@Entity
@Table(name = "nkrx_project")
@JsonIgnoreProperties(value = { "contactrecordList" })
public class ProjectModel extends BaseModel {
private static final long serialVersionUID = 5079206834751376185L;
@Id
@GeneratedValue(generator = "system-uuid")
@GenericGenerator(name = "system-uuid", strategy = "uuid")
@Column(length = 64, name = "DB_ID")
private String dbid;
// 客户id,项目与客户是多对一关系
@ManyToOne
@JoinColumn(name = "customer_id")
private CustomerModel Customer;
// 项目名称
@Column
private String projectName;
// 是否开展计划
@Column
private int ifDevelop;
@ManyToMany(mappedBy = "projectList", fetch = FetchType.EAGER)
private List<ContactRecordModel> contactrecordList = new ArrayList<ContactRecordModel>();
public String getDbid() {
return dbid;
}
public void setDbid(String dbid) {
this.dbid = dbid;
}
public CustomerModel getCustomer() {
return Customer;
}
public void setCustomer(CustomerModel customer) {
Customer = customer;
}
public String getProjectName() {
return projectName;
}
public void setProjectName(String projectName) {
this.projectName = projectName;
}
public int getIfDevelop() {
return ifDevelop;
}
public void setIfDevelop(int ifDevelop) {
this.ifDevelop = ifDevelop;
}
public static long getSerialversionuid() {
return serialVersionUID;
}
public List<ContactRecordModel> getContactrecordList() {
return contactrecordList;
}
public void setContactrecordList(List<ContactRecordModel> contactrecordList) {
this.contactrecordList = contactrecordList;
}
}
从表:
package com.nkrx.model;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
import javax.persistence.Table;
import org.codehaus.jackson.annotate.JsonIgnoreProperties;
import org.hibernate.annotations.GenericGenerator;
import com.nkrx.common.BaseModel;
import com.nkrx.model.ProjectModel;
------------------------------联系记录表-----------------
@Entity
@Table(name = "NKRX_CONTACT_RECORD")
@JsonIgnoreProperties(value = { "projectList" })
public class ContactRecordModel extends BaseModel {
private static final long serialVersionUID = -6560238360601332337L;
@Id
@GeneratedValue(generator = "system-uuid")
@GenericGenerator(name = "system-uuid", strategy = "uuid")
@Column(length = 64, name = "DB_ID")
private String dbid;
// 建立联系类型字段
@Column(length = 32)
private int contactRecordType;
// 建立联系日期字段
@Column(length = 32)
private Date contactRecorDate;
// 建立联系人字段
@Column(length = 32)
private String contactRecorMen;
@ManyToMany(targetEntity = ContactRecordModel.class)
@JoinTable(name = "NKRX_R_P_C", joinColumns = @JoinColumn(name = "CONTACTRECORD_ID") , inverseJoinColumns = @JoinColumn(name = "Project_ID") )
private List<ProjectModel> projectList = new ArrayList<ProjectModel>();
//重点是@JoinColumn(name = "CONTACTRECORD_ID") , inverseJoinColumns = @JoinColumn(name = "Project_ID")中,JoinColumn和inverseJoinColumns 的主从表名字不要写反。
public String getDbid() {
return dbid;
}
public void setDbid(String dbid) {
this.dbid = dbid;
}
public int getContactRecordType() {
return contactRecordType;
}
public void setContactRecordType(int contactRecordType) {
this.contactRecordType = contactRecordType;
}
public Date getContactRecorDate() {
return contactRecorDate;
}
public void setContactRecorDate(Date contactRecorDate) {
this.contactRecorDate = contactRecorDate;
}
public String getContactRecorMen() {
return contactRecorMen;
}
public void setContactRecorMen(String contactRecorMen) {
this.contactRecorMen = contactRecorMen;
}
public List<ProjectModel> getProjectList() {
return projectList;
}
public void setProjectList(List<ProjectModel> projectList) {
this.projectList = projectList;
}
}