Итак, вы хотите получить имя терминала по номеру терминала.
У вас есть несколько вариантов:
1) Если terminal_name
находится в той же таблице базы данных, что и temrminal_id
, то она должна быть загружена в ContractNewDTO
в вашем mapper::toNewDTO
, вы можете реализовать логику преобразования, которая использует terminal_name
вместо temrminal_id
.
2) Если termminal_name
находится в другой таблице (например, таблица Terminaldetails), и вам потребуются все данные из этой таблицы, то вы можете создать отображение (например, OneToOne, присоединенный к terminal_id
). Здесь - отличное письмо о том, как выполнять сопоставление OneToOne от самого мастера.
3) Другой вариант - использовать @SecondaryTable. Допустим, ваша текущая сущность - TerminalEntity, имеет столбец terminal_id
и сопоставлена с таблицей «терминал». terminal_name
находится в другой таблице "Terminaldetails".
Что вы можете сделать:
@Entity
@Table(name = "terminal")
@SecondaryTable(name = "terminaldetails")
public class TerminalEntity {
@Id
@GeneratedValue
private Long id;
@Column(name = "terminal_id")
private String terminalId;
@Column(name = "terminal_name", table = "terminaldetails")
private String terminalName;
}