Вместо нескольких небольших объектов (которые имеют в основном такие же свойства, как ID и NAME), отображаемые как @OneToOne
, я хотел бы иметь один «общий» вид объект, который сопоставляется с одной таблицей базы данных, и в этом случае должен ссылаться на какой-то столбец дискриминатора group_id
.Используйте общий объект данных (и таблицу) для нескольких сопоставлений @OneToOne
Примеры кода должны понять, что я хочу добиться:
@Entity
@Table(name = "GENERAL_DATA")
public class GeneralData {
@Id
@Column(name = "GROUP_ID")
private int groupId;
@Id
@Column(name = "ID")
private int id;
@Column(name = "NAME")
private String name;
}
@Entity
@Table(name = "INVOICE")
public class Invoice {
@OneToOne
@JoinColumn(name = "STATUS")
private GeneralData status;
@OneToOne
@JoinColumn(name = "COLOR")
private GeneralData color;
}
Структура таблицы базы данных GeneralData должно быть так:
group_id id name
-----------------------------
1 1 Active
1 2 Processing
1 3 Cancelled
2 1 Blue
2 2 Green
2 3 Red
не получил ваш вопрос, что именно вы просите ..? – Dileep