Я создаю приложение, которое будет использовать таблицы разных размеров, в то время как я работал над проектом, помеченным как 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);
}
Как вы видите, я устанавливаю коллекцию столбцов каждый раз, когда извлекаю объект таблицы, что, очевидно, отбрасывает любые столбцы, уже добавленные или удаленные из коллекции, если таблица уже была в памяти. Я не совсем уверен, где и как я должен извлекать столбцы (я рассматривал возможность вызова репозитория из класса таблицы, но что-то в этом не так). Когда дело доходит до постоянства, я также не совсем уверен, как это сделать, когда я добавляю объекты в список, я могу легко получить их, но когда я удаляю их, у меня действительно нет способа обнаружения (потому что я конечно, помещать события, чтобы поймать это, было бы обманом :)). Небольшой толчок в правильном направлении был бы очень признателен, спасибо.