JPA сущность и ассоциация в @Embeddable - PullRequest
0 голосов
/ 05 декабря 2018

Был запрос на использование ассоциаций и других объектов внутри встраиваемого объекта.Ниже приводится объект сотрудника

@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;
}

Таким образом, у меня будут ассоциации с другими сущностями, а также составной ключ.Является ли хорошей практикой использование ассоциаций и других объектов внутри встраиваемого объекта?Есть ли лучший или более простой способ достижения этой цели, кроме описанного выше?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...