Итак, у меня есть класс сущности семейства, подобный этому:
@Entity
public class Family {
@Id
@Column(name = "id")
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer id;
@Column(name = "familyName")
private String familyName;
@Column(name = "externalID")
private String externalID;
public Family(String familyName) {
this.familyName = familyName;
this.externalID = UUID.randomUUID().toString();
}
}
Где я буду получать только фамилию из FamilyDTO
и буду генерировать id
для внутренних целей и для базы данных PK и externalID
, чтобы вернуть клиенту.
Теперь у меня есть личный класс:
@Entity
public class Person {
@Id
@Column(name = "id")
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer id;
@Column(name = "name")
private String name;
private Integer familyID; // should be a foreign key to the family primary key id
public Project(String name) {
this.name = name;
}
}
Я буду принимать name
и familyExternalID
с PersonDTO
:
public class PersonDTO {
private String name;
private Integer familyExternalID;
}
Теперь мне нужно использовать идентификатор семьи в качестве внешнего ключа, а не familyexternalID (в таблице персон), так как сопоставить familyExternalID с идентификатором семьи в таблице семейства, а затем добавить идентификатор семьи как внешний ключ?