由于工作需要使用JPA的集合映射,在网上找了好长时间都没有找到有关集合映射的例子,于是自己就写了一个。
总共有三个类,一个履历评估RecordAnalysis,一个履历评估-空白期RecordBlankPeriod,一个履历评估-履历疑问RecordBlankPeriod,一个履历评估RecordAnalysis可以有多个RecordBlankPeriod和RecordBlankPeriod,一般情况下我们使用多对一和一对多来进行注解,但是我现在使用一个比较少用到的集合映射来进行注解
RecordAnalysis类
package isa.qa.boquma.headhunter.model;
import java.io.Serializable;
import java.util.List;
import java.util.Set;
import javax.persistence.Column;
import javax.persistence.ElementCollection;
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.ManyToOne;
import javax.persistence.OrderBy;
import javax.persistence.Table;
import org.hibernate.annotations.GenericGenerator;
/**
*
* @Description:履历评估
* @author:章源辰
* @time:2015年12月21日 下午1:59:28
*/
@Entity
@Table(name="record_analysis")
public class RecordAnalysis implements Serializable {
/**
* @Description: serialVersionUID : TODO
*/
private static final long serialVersionUID = 4970029040867212002L;
@Id
@GeneratedValue(generator="system-uuid")
@GenericGenerator(name="system-uuid",strategy="uuid")
private String id;
/**
* 相关知识储备水平分析
*/
@Column(length=256)
private String masteredSkills;
/**
* 从工作经历时间长短,分析其喜好与适应度
*/
@Column(length=256)
private String workPeriods;
/**
* 第一份工作经历分析其影响较大的企业环境
*/
@Column(length=256)
private String firstWorkExperience;
/**
* 是否加入别人业绩
*/
@Column
private Boolean achievementJoinO;
/**
* 候选人
*/
@ManyToOne
@JoinColumn(nullable=true,name="candidate")
private Candidate candidate;
/**
* 履历评估-空白期
*/
@ElementCollection(fetch=FetchType.EAGER)
@OrderBy("start_date")
@JoinTable(name="record_blank_period")
private List<RecordBlankPeriod> recordBlankPeriod;
/**
*