У меня есть некоторый опыт программирования, но я все еще довольно любитель. Я просмотрел много учебников по NB-платформе и IDE и прочитал некоторые книги, но они не помогли мне, как организовать мое RCP-приложение с базой данных (встраивание Derby, а не внешний сервер).
Что у меня есть?
- классы сущностей (генерируется NB IDE из базы данных для JPA) и JPA (с использованием EclipseLink )
- некоторые объекты просмотра, такие как TopComponent , Explorer и т. Д. И узлы
- basic "объекты" реального мира : книги, главы в книге, символы в главах
Полагаю, мне также следует использовать некоторый класс DAO для всех трех объектов реального мира, которые будут создавать и отправлять запросы в базу данных и возвращать данные.
И конечно, я бы построил несколько бизнес-объектов для бизнес-логики. Вероятно, «Книги», «Главы», «Персонажи», где, например, экземпляр главы имеет атрибут, содержащий ссылку на экземпляр Книги, откуда берется глава.
Но как сделать основные операции, такие как:
- Получение коллекции всех книг / персонажей или глав конкретной книги для отображения в каком-либо виде?
- Основные операции CRUD со всеми бизнес-объектами?
и так далее?
Я имею в виду, я не могу напрямую вызывать DAO из моего бизнес-объекта, например из Глав, чтобы запросить все символы, у которых таблица FK в главах равна идентификатору этого экземпляра Глав, могу ли я? Это было бы слишком связано, моей бизнес-логикой и конкретной системой баз данных (в DAO).
И нет смысла просить экземпляр Книги вернуть все книги. Должен ли я сделать некоторые статические методы и, возможно, атрибуты (коллекции) для этого?
Или я должен создать некоторый класс адаптера, который будет вызывать определенные методы DAO и создавать из них определенные бизнес-объекты и возвращать их?
Итак мои общие вопросы :
- А) Как получить сбор данных? Где хранить некоторые из них?
- Б) Как получить индивидуальные данные? Когда я редактирую некоторый Персонаж, например его имя, я изменяю атрибут бизнес-объекта, но как мне получить это изменение в базе данных? Должен ли сам бизнес-объект как-то вызывать DAO, или я должен сделать в моем представлении / контроллере не только обновить бизнес-объект, но и объект данных (возможно, через некоторый класс адаптера)?
Буду признателен за любую помощь. Я чувствую себя полностью потерянным, но я не могу создать какое-то приложение, просто чтобы оно работало, мне нужно немного хорошего дизайна (это вид работы в университете).