У меня есть класс сущностей, который мне нужно использовать в нескольких местах.Итак, я создал класс с обобщениями, как показано ниже
class Output<T> {
...
private String referencedEntityName;
private T referencedEntity;
...
}
У меня есть два других класса, которые используют этот класс
class Process {
...
private List<Output<Process>> outputs;
...
}
Другой класс, который использует Output<T>
, это
class Machine {
...
private List<Output<Machine>> outputs;
...
}
При хранении в базе данных оно должно выглядеть следующим образом
+----+------------------------+----------------------+
| id | referenced_entity_name | referenced_entity_id |
+----+------------------------+----------------------+
| 1 | Process | 123 |
+----+------------------------+----------------------+
| 2 | Process | 234 |
+----+------------------------+----------------------+
| 3 | Machine | 345 |
+----+------------------------+----------------------+
Как мне этого добиться?
PS Это не совсем проблема наследования, как this .Хотя это можно решить с помощью интерфейсного решения, такого как DiscriminatorValue
, но я не уверен.
Здесь существует связь между двумя сущностями, одна сущность упоминается в нескольких других сущностях.Я думаю, что это должно быть ясно с использованием дженериков.Кроме того, это решение может быть разработано другим способом, поддерживая те же отношения.Я тоже открыт для этого.