Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.
Комментарий: Migrated to Confluence 5.3

 

Типы задач на коллоквиум

...

№2

Все задачи можно решать с использованием: аннотаций JPA (как в примере 2.3 Объектно-реляционное отображение (ORM), Hibernate), либо формата hbm.xml (Hibernate или NHibernate), либо .NET Entity Framework

 

Вложения

 

...

  1. Задачи на отображение иерархии классов в реляционную модель.

Дана объектная модель в виде UML

...

диаграммы классов.

...

Требуется спроектировать реляционную модель и написать HQL

...

запросы для выборки всех объектов базового класса и одного из дочерних классов. Также написать SQL-запросы, в которые будут транслироваться HQL

...

запросы.

 

Всего рассматривается 3 типа отображений иерархий:

...

  • Single Table

...

  • Table Per Class

...

  • Table Per Concrete Class

Прочитать про них можно в любой книге, или документации по ORM-библиотекам, например, по ссылке http://docs.jboss.org/hibernate/core/3.3/reference/en/html/inheritance.html#inheritance-strategies

 

Пример иерархии:

 

 

 

 

Image Added


2.

...

Задачи на оптимистическую и пессимистическую блокировки для отсоединенной модели.

Данные в заданной таблице может менять множество клиентов одновременно в режиме отсоединенной модели.

...

Требуется предложить решение, позволяющее обнаруживать (оптимистическая) или предотвращать (пессимистическая блокировка) конфликты обновления строк таблицы без или с возможностью изменения структуры таблицы. Написать SQL

...

запросы SELECT

...

и UPDATE для демонстрации подхода.
Для решения задач можно использовать подходы:

...

  1. Оптимистическая

...

  1. блокировка

...

  1. с

...

  1. проверкой

...

  1. всех

...

  1. полей (update set name=:new_name where id=:id and name=:old_name and …)

...

  1. Оптимистическая

...

  1. блокировка

...

  1. с

...

  1. добавлением

...

  1. столбца

...

  1. версии

...

  1. или

...

  1. даты

...

  1. последнего

...

  1. обновления (update version = version + 1 where id=:id and version=:version)

...

  1. Пессимистическая блокировка с добавлением

...

  1. столбцов (кто и когда заблокировал)


3.

...

Задачи на HQL-запросы

Дана объектная схема и соответствующая ей реляционная схема. Напишите запрос на языке HQL

...

и его аналог на SQL.
Все запросы на HQL

...

в этих задачах строятся на основе

...

"точечной нотации" связей ManyToOne.
Например, from

...

CatalogItem

...

as

...

item

...

where

...

item.author.name

...

like :name

...

(для схемы описанной в примере)
Раскрываются в SQL

...

при помощи inner

...

join

...

c

...

соответствующими условиями объединений. SQL можно посмотреть, запустив пример.

 

4.

...

Задачи на проектирование ER-схемы и маппинга

По заданной объектной модели, спроектируйте схему базы данных и Hibernate

...

маппинг в виде XML

...

или аннотаций (атрибутов)
Все схемы – состоят из двух сущностей,

...

связанных OneToMany. Требуется нарисовать соответствующую ER-схему со связью и маппинг (OneToMany

...

с одной стороны, ManyToOne

...

с другой – см. пример Catalog/CatalogItem)

...