Страница 1 из 1

Алёшин. Практика объектно-реляционного отображения в JPA

СообщениеДобавлено: 30 сен 2011, 04:57
Telnov
Алёшин Игорь, переданный вам сегодня материал по теме УИР может быть неполным.
Поэтому дополнительно закачал его сюда. Прошу ознакомиться. И не затягивайте с работой.
Текст задания на УИР см. в прикрепленном файле.

Re: Алёшин. Практика объектно-реляционного отображения в JPA

СообщениеДобавлено: 04 дек 2011, 18:56
Alyoshin
Углубившись в проблему реализации lazy-режима, обнаружил, что для существования таковой необходима, например, связь одной сущности с коллекцией сущностей. Эта коллекция будет подгружаться из бд только когда непосредственно требуется клиенту.

У меня в проекте реализован класс CDocs содержащий коллекцию документов CDocument которые являются сущностями. Сам CDocs не является сущностью.
В данный момент загрузка из бд в коллекцию происходит во время запуска сервера в Enterprice JavaBean'e. В дальнейшем клиенты обращаются к этой коллекции. В свою очередь при изменении коллекции происходит обновление базы данных. Взаимодействие коллекции сущностей CDocument и БД я реализовал сам.

Получается, что к проекту нельзя применить lazy-аннотации, если в бд нет связей один-ко-многим и т.д.
Мне требуется сократить нагрузку на бд, исключив лишние запросы.

Может быть следует реализовать отложенную синхронизацию с бд?
Например, можно добавить к коллекции состояние документа (CREATE, DELETE, UPDATE, null). Итератором будет просматриваться коллекция и, в зависимости от состояния. будут выполняться определенные действия:
CREATE - создается документ в БД. (CREATE меняется на null)
DELETE - документ удаляется из БД и из коллекции.
UPDATE - документ обновляется в БД. (UPDATE меняется на null)
null - никаких действий не происходит

Получится, что если документ несколько раз обновляли или удаляли и создавали заново, в бд через определенное время будет подана конечная версия этого документа на данный момент, и т.о. сократится число транзакций.

Re: Углубившись в проблему реализации lazy-режима, обнаружил

СообщениеДобавлено: 05 дек 2011, 04:00
Telnov
Вы правильно поняли суть проблемы.
В прототипе «Документы» вся работа происходит с простой коллекцией сущностей CDocument, и речь может идти только об отложенной синхронизации.

Если продвинуться далее - к прототипу «База знаний» - то там как раз и появляются отношения типа "Один-ко-Многим". Например: одно ключевое слово CKeyword ассоциировано со многими документами CDocument, каждый документ ассоциирован с коллекцией ключевых слов и т.п. Тогда режим lasy и заработает в полную мощность.

Ну а пока, делайте, как вы написали, и как вам будет понятно.
Жду от вас отчетные материалы в черновом варианте.

Re: Алёшин. Практика объектно-реляционного отображения в JPA

СообщениеДобавлено: 06 дек 2011, 05:05
Alyoshin
Вот черновой вариант. В среду и четверг буду выкладывать дополненный/исправленный.

Re: Алёшин. Практика объектно-реляционного отображения в JPA

СообщениеДобавлено: 13 дек 2011, 21:52
Alyoshin
Подскажите, пожалуйста, какие диаграммы обязательно должны быть в отчете. Жду замечаний по содержимому.
К утру постараюсь дополнить отчет.

Re: какие диаграммы обязательно должны быть в отчете

СообщениеДобавлено: 14 дек 2011, 01:04
Telnov
В вашем случае минимальный набор диаграмм таков: требований, прецедентов, классов, компонентов, последовательности, развертывания.
Также желательны диаграммы: деятельности, коммуникации, обзора взаимодействия.

Теперь по отчету. Он крайне сырой. Некоторые недостатки, которые сразу бросаются в глаза:

1. По диаграмме прецедентов. Кроме CRUD, должен быть прецедент типа "Восстановление после сбоев", как минимум. "Переход к документу...", "Переход на страницу..." - это не прецеденты. Пожалуйста, вспомните определение прецедента (Use case). Один и тот же актор - некий абстрактный "Пользователь" - документы добавляет, обновляет, удаляет, и сам же их читает. Нет ни студентов, ни преподавателей. ни администраторов? Никакого разграничения прав доступа? Это неприемлемо.
2. По сценариям выполнения прецедентов - прописаны поверхностно, но это полбеды. Отсутствуют исключительные ситуации и их обработка - это крупный недочёт.
3. Диаграмма классов. Если она не умещается на странице формата A4, следует: либо разбить классы на пакеты, либо использовать сокращенную нотацию.
4. По разделу 1.3 - много мелких ошибок и нелепостей. Например: "веб-сервер и сервлет-сервер..." - на самом деле это одно и то же; "Сервлет создает HTML-страницу..." - совсем даже не обязан он это делать; и т.д. Пожалуйста, добросовестнее относитесь к написанию текста. Возможно, его кто-то будет читать.
5. Где тестирование созданного софта? Именно в нем состоит исследовательская часть работы. Какие выводы можно сделать по результатам ваших трудов?
6. И последнее. Это уже относится ко всем студентам 5-го курса. Научитесь, наконец, пользоваться текстовым процессором Word, хотя бы для подготовки отчетов. Узнайте, что такое стили, как организовать нумерацию заголовков, сделать оглавление, перекрестные ссылки и т.п. Стыд сплошной и безобразие, как вы готовите отчеты.

В ЧТ у нас будет пробная презентация курсовых работ. Ждем и вас к 15-00 со всеми материалами, работающим и оттестированным софтом, и, желательно, с коротким докладом-презентаций по теме УИР.

Алёшин: прошу подойти на кафедру 28 декабря к 10час. 20мин.

СообщениеДобавлено: 25 дек 2011, 14:34
Telnov
Алёшин Игорь, прошу подойти на кафедру 28 декабря к 10час. 20мин. (ауд. 2-510) для обсуждения темы дипломной работы и подготовки задания на диплом. Продумайте ваши пожелания и предпочтения.