Я имел дело с DAOClasses и столкнулся с серьезной проблемой, которая вынуждает меня реорганизовать весь мой проект. Однако я понятия не имею, как решить эту проблему.
Предположим, у меня есть 3 сущности:
public class User {
private int id;
private int cfu;
private String name;
private String surname;
}
public class Project {
private int ID;
private String info;
private Doc doc;
}
public class Doc {
private int id;
private String name;
private String surname;
private ArrayList<Project> projects;
}
Каждый из этих классов имеет свой собственный DAO и свою собственную таблицу (относительно Doc
таблица не хранит ссылки на Projects
идентификаторы);
Среди своих различных методов DAOClasses использует эти 2 метода:
read
позволяет создать элемент типа T учитывая идентификатор readAll
позволяет восстановить все элементы типа T с учетом фильтра
Когда я вызываю read
метод для DocDAO
, необходимо проверить, является ли * Таблица 1022 * содержит элементы Do c, в этом случае создайте эти элементы благодаря ProjectDAO
readAll
и добавьте их в свой ArrayList. Но также ProjectDAO
необходимо прочитать элемент Doc
, который снова нуждается в ProjectDAO
, вызывая циклическую зависимость (следовательно, StackOverflow):
DocDAO.read(int id) --calls--> ProjectDAO.readAll(Doc d) --calls-> DocDAO.read(int id) --calls--> ProjectDAO.readAll(Doc d)...
readAll
позволяет восстановить все элементы типа T с учетом фильтра create
позволяет создать элемент типа T в базе данных
, как я могу отделить эти функции без изменения базовых классов (но только DAO)? Я бы пропустил, давая больше кода, так как он очень длинный.