Страница 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) для обсуждения темы дипломной работы и подготовки задания на диплом. Продумайте ваши пожелания и предпочтения.