@Embeddable中的JPA实体和关联

时间:2018-12-04 23:01:56

标签: hibernate jpa-2.0

查询有关可嵌入对象内部的关联和其他实体的用法。以下是员工实体

@Entity
public class Employee implements Serializable {

@NaturalId
@Column(name="ID", nullable=false, unique=true)
private long id;

}

评估实体用于记录员工的评估。因此,该实体将与不同的其他实体(例如employee,appraisal_year和appraisal_type)具有多对一的关联。这三个将构成评估表的组合键。 因此,我决定创建一个@Embeddable类。

@Embeddable
public class AppraisalKey implements Serializable {
private static final long serialVersionUID = 1L;
@ManyToOne(fetch = FetchType.LAZY, optional=false)
@JoinColumn(name = "EMPLOYEE_ID", referencedColumnName = "ID")
private Employee employee;
@ManyToOne(fetch = FetchType.LAZY, optional=false)
@JoinColumn(name = "APPRAISAL_YEAR")
private AppraisalYear appraisalYear;
@ManyToOne(fetch = FetchType.LAZY, optional=false)
@JoinColumn(name = "APPRAISAL_TYPE")
private AppraisalType appraisalType;

}

@Entity
public class Appraisal {
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(name="ID", unique=true)
private long id;
@EmbeddedId
private AppraisalKey appraisalKey;
}

这样,我将拥有与其他实体的关联以及组合键。 在可嵌入对象内部使用关联和其他实体是否是一种好习惯? 除了上述方法之外,还有没有更好或更简单的方法来实现这一目标?

0 个答案:

没有答案