jpa
.pdfУсловные выражения
Сравнение >,<,>=,<=,=,<>
like
is [not] null
is [not] empty
<значение> in <список>
<значение> in <подзапрос>
<оператор> {ALL|SOME|ANY}
(подзапрос) |
2-101 |
|
Логические операторы
Три стандартных оператора для комбинирования условий
◦and
◦or
◦not
2-102
Параметры
Параметры именуются в запросе с помощью:
◦Имени: :bName, :x...
◦Позиции: ?1, ?2...
Параметры выставляются до выполнения запроса:
◦setParameter(String name,Object val)
◦setParameter(int pos, Object val)
2-103
Выборка при объединении
В запросе можно указать тип «ранней» выборки с помощью fetch для «ко-многим» связей
Нельзя обращаться к выбираемой сущности в запросе
2-104
Ограничение количества выборки
Два метода класса Query:
◦setFirstResult(int startPos)
Нумерация с 0
◦setMaxResults(int limit)
2-105
Выполнение запросов
Два метода для выборки:
◦List getResultList()
◦Object getSingleResult()
EntityNotFoundException
NonUniqueResultException
Один метод для обновления:
◦int executeUpdate()
Возвращает количество измененных записей
2-106
Массовые операции
Обновление
◦Обновляет поле версии (если есть)
Удаление
◦Не требует загрузки объектов
Массовые изменения не затрагивают
управляемых объектов в текущем контексте любого менеджера
2-107
Именованные запросы
Именованные запросы могут определяться в аннотациях
Так же могут определяться в
конфигурационном файле
createNamedQuery(String name)
2-108
Упражнение
Разработка сохраняемых сложных сущностей с иерархиями наследования и связями.
2-109
Java Persistence API
Сущности (Entities)
Транзакции в JPA
Иерархия классов и JPA
Связи в JPA
EJB-QL
Обработчики (Listeners)
2-110