Я создаю приложение, которое будет использовать таблицы разных размеров, в то время как я работал над проектом, помеченным DDD, прежде чем он действительно не получил правильную часть персистентности, и, таким образом, я оставил исследования вещей. Одна вещь, которую я не до конца понимаю и не могу найти конкретных примеров, это как сохранить «детей» от совокупных корней. Я работаю без ORM (просто старый DAO), который довольно сложно найти примеры (на самом деле это проект для Uni, который специфичен для БД, поэтому мне «не разрешено» использовать ORM, хотя я ценю это было бы намного проще, я просто не могу). Я искал конкретные примеры на stackoverflow, но, похоже, ничто не описывает мою конкретную проблему.
Я сомневаюсь, что приведенный ниже код верен
public DataTable getTableByID(int id) throws AccessException{
DataTable result = this.context.TableContext().getEntityByID(id);
result.setColumns(getColumnsByTableID(id));
return result;
}
private List<DataColumn> getColumnsByTableID(int id){
Object[] arguments = { id };
return this.context.ColumnContext().getUnitsWhere("TABLE_ID = ?", arguments);
}
Как вы видите, я устанавливаю коллекцию столбцов каждый раз, когда извлекаю сущность таблицы, которая, очевидно, отбрасывает любые столбцы, уже добавленные или удаленные из коллекции, если таблица уже была в памяти. Я не совсем уверен, где и как я должен извлекать столбцы (я думал о вызове хранилища из класса таблицы, но что-то не так). Когда дело доходит до постоянства, я также не совсем уверен, как это сделать, когда я добавляю объекты в список, я легко могу их извлечь, но когда я удаляю их, у меня действительно нет способа обнаружить (потому что я Обязательно ставить события, чтобы поймать это, было бы обманом :)). Спасибо за небольшой толчок в правильном направлении.