Я ищу решение для извлечения данных из 2 разных таблиц, основанных на типе таблицы и ссылочном ключе, пожалуйста, посмотрите на следующую структуру таблицы и классы сущностей.
Таблица
1**Type**
(ID, TableName // Value for TableName can be 'TableA' or 'TableB')
2**TableA**
( ID, NameForA)
3**TableB**
(ID, NameForB)
4**TableMain**
(ID, Name, TypeID (foreign key of Type table), DataID (can be reference of TableA or TableB))
Структура классов сущностей
Class Abstract Model{ int ID; } // Model is base class, holds data of ID field and is parent for all entity classes
Class Type extends Model{String TableName;}
Class TableA extends Model{String NameForA;}
Class TableB extends Model{String NameForB;}
Class TableMain extends Model{
String Name;
Type type;
Model data; // can be TableA class or TableB based on Type
}
Что я ищу, так это то, что у класса TableMain есть поле 'data', это может быть объект класса TableA или TableB, решение будет основано на 'Type', который содержит tableName, если имя таблицы равно 'TableA', тогда данные будут экземпляром класса TableA или если tableName равно «TableB», данные будут экземпляром TableB.
Я знаю, что это не очень хорошая практика, но у меня уже есть большая структура базы данных, и я не могу ее изменить. так что это единственный способ решить эту проблему.
Кто-нибудь может мне помочь, как заставить его работать в спящем режиме или каким-либо другим способом? или возможно заполнить данные через спящий режим автоматически.
Спасибо.