JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site.
Платформа CUBA. Руководство по разработке приложений
4.4.5. Управление транзакциями
Sidebar
Пред.
|
Наверх
|
След.
4.4.5.3. Примеры взаимодействия транзакций
Contents
Search
Предисловие
Целевая аудитория
Дополнительные материалы
Обратная связь
Введение
Обзор платформы
Технические требования
Release Notes
Установка и настройка инструментария
Установка CUBA Studio
Интеграция CUBA Studio с IDE
Быстрый старт
Описание задачи
Создание проекта
Создание сущностей
Создание таблиц базы данных
Создание экранов пользовательского интерфейса
Экраны управления Покупателями
Экраны управления Заказами
Меню приложения
Экран редактирования Покупателя со списком Заказов
Запуск приложения
Устройство платформы
Архитектура
Уровни и блоки приложения
Модули приложения
Базовые проекты
Состав приложения
Общие компоненты
Модель данных
Базовые классы сущностей
Аннотации сущностей
Аннотации класса
Аннотации атрибутов
Атрибуты типа enum
Мягкое удаление
Использование
Политика обработки связей
Ограничение уникальности на уровне БД
Metadata Framework
Интерфейсы метаданных
Формирование метаданных
Datatype
Пример форматирования даты в UI
Примеры форматирования дат и чисел в коде приложения
Пример специализированного Datatype
Мета-аннотации
Представления
Создание представлений
Управляемые бины
Создание бина
Использование бина
JMX-бины
Создание JMX-бина
JMX-бины платформы
CachingFacadeMBean
ConfigStorageMBean
EmailerMBean
PersistenceManagerMBean
ScriptingManagerMBean
ServerInfoMBean
Интерфейсы инфраструктуры
Configuration
Messages
MessageTools
Metadata
MetadataTools
Resources
Scripting
Security
TimeSource
UserSessionSource
UuidSource
DataManager
Запросы с distinct
Последовательная выборка
AppContext
Свойства приложения
Доступ к свойствам
Хранение свойств в файлах
Хранение свойств в базе данных
Конфигурационные интерфейсы
Использование
Типы свойств
Значения по умолчанию
Локализация сообщений
Пакеты сообщений
Главный пакет сообщений
Локализация названий сущностей и атрибутов
Локализация enum
Аутентификация пользователей
UserSession
Вход в систему
SecurityContext
Обработка исключений
Классы исключений
Передача исключений Middleware
Обработчики исключений клиентского уровня
Компоненты работы с базой данных
Типы СУБД
Поддержка произвольных СУБД
Версия СУБД
Скрипты создания и обновления БД
Структура SQL-скриптов
Структура Groovy-скриптов
Выполнение скриптов БД задачами Gradle
Выполнение скриптов БД сервером
Компоненты среднего слоя
Сервисы
Создание сервиса
Использование сервиса
DataService
Системная аутентификация
Интерфейс Persistence
PersistenceTools
PersistenceHelper
DbTypeConverter
Слой ORM
EntityManager
Состояния сущности
Загрузка по требованию
Выполнение JPQL запросов
Поиск подстроки без учета регистра
Макросы в JPQL
Выполнение SQL запросов
Entity Listeners
Управление транзакциями
Программное управление транзакциями
Декларативное управление транзакциями
Примеры взаимодействия транзакций
Откат вложенной транзакции
Чтение и изменение данных во вложенной транзакции
Таймаут транзакции
Особенности реализации для различных СУБД
Универсальный пользовательский интерфейс
Экраны
Типы экранов
Фрейм
Простой экран
Экран выбора
Экран редактирования
XML-дескриптор
Контроллер экрана
AbstractFrame
AbstractWindow
AbstractLookup
AbstractEditor
Инжекция зависимостей контроллеров
Компаньоны контроллеров
Библиотека визуальных компонентов
Компоненты
Button
Bulk Editor
CheckBox
DateField
Embedded
FieldGroup
FileMultiUploadField
FileUploadField
Filter
Использование фильтра
Описание компонента Filter
Права пользователей
Внешние параметры для управления фильтрами
Последовательное наложение фильтров
GroupTable
Label
Link
LinkButton
LookupField
LookupPickerField
MaskedField
OptionsGroup
PasswordField
PickerField
PopupButton
ProgressBar
Related Entities
RichTextArea
SearchPickerField
Table
TextArea
TextField
TimeField
TokenList
Tree
TreeTable
TwinColumn
Контейнеры
BoxLayout
ButtonsPanel
GridLayout
GroupBoxLayout
IFrame
ScrollBoxLayout
SplitPanel
TabSheet
Разное
Formatter
Presentation
Timer
Validator
XML-атрибуты компонентов
Источники данных
Создание источников данных
Декларативное создание
Программное создание
Собственные классы реализации
Запросы в CollectionDatasourceImpl
Возвращаемые значения
Параметры запроса
Фильтр запроса
Поиск подстроки без учета регистра
Слушатели источников данных
DsContext
DataSupplier
Действия. Интерфейс Action
Декларативное создание действий
Стандартные действия
Стандартные действия с коллекцией
CreateAction
EditAction
RemoveAction
RefreshAction
AddAction
ExcludeAction
ExcelAction
Стандартные действия поля выбора
LookupAction
ClearAction
OpenAction
BaseAction
Диалоговые окна и уведомления
Диалоговые окна
Уведомления
Фоновые задачи
Использование фоновых задач
Настройка окружения
Создание темы приложения
Тема в веб-приложениях
Использование существующих тем
Расширение существующей темы
Создание новой темы
Тема в десктоп-приложениях
Специфика Web Client
Работа с компонентами Vaadin
Компоновка главного окна приложения
Специфика Desktop Client
Работа с компонентами Swing
Создание собственных компонентов
Использование сторонних компонентов Vaadin
Интеграция компонентов в Generic UI
Горячие клавиши
Компоненты портала
Базовая функциональность
REST API
Включение в проект
Описание функций
Логин
Логаут
Загрузка экземпляра персистентного объекта из базы данных по идентификатору
Выполнение JPQL запроса для выборки данных
Коммит новых и измененных экземпляров, удаление
Загрузка файла из хранилища
Получение описания модели данных в формате HTML
Cоздание новых представлений на сервере
Вызов сервисов
Вызов сервиса с помощью GET запроса
Вызов сервиса с помощью POST запроса
Поддерживаемые типы параметров метода сервиса
Результат вызова сервиса
Механизмы платформы
Выполнение задач по расписанию
Spring TaskScheduler
Назначенные задания CUBA
Регистрация задания
Управление обработкой заданий
Особенности реализации
Отправка email
Методы отправки
Вложения
Настройка параметров отправки email
Динамические атрибуты
Управление динамическими атрибутами
Категоризируемые сущности
Динамические атрибуты в REST API
Пессимистичная блокировка
Блокировка редактирования сущностей
Блокировка произвольных процессов
Мониторинг блокировок
Статистика сущностей
Журнал изменений сущностей
Настройка журналирования
Отображение журнала
Снимки сущностей
Сохранение снимков
Отображение снимков
Хранилище файлов
Загрузка файлов
Выгрузка данных
Стандартная реализация хранилища
Генерация последовательностей
Выполнение SQL с помощью QueryRunner
Интеграция с MyBatis
Панель папок
Папки приложения
Папки поиска
Наборы
Ссылки на экраны
Инспектор сущностей
Информация об используемом ПО
Расширение функциональности
Расширение сущности
Расширение экранов
Расширение бизнес-логики
Разработка приложений
Рекомендуемый стиль кода
Файловая структура проекта
Описание скриптов сборки
Структура build.gradle
Запуск задач сборки
Сборка на сервере Continuous Integration
Создание проекта
Проектирование БД
Создание схемы БД
Подключение к HSQLDB внешними инструментами
Подключение с помощью Squirrel SQL
Подключение с помощью IntelliJ IDEA Ultimate
Особенности PostgreSQL
Особенности MS SQL Server
Особенности Oracle Database
Логгирование
Настройка логгирования в Tomcat
Настройка логгирования в десктоп клиенте
Отладка и тестирование
Подключение отладчика
Отладка виджетов в веб-браузере
Тестирование
Модульные тесты
Интеграционные тесты Middleware
Интеграционные тесты клиентского уровня
Рецепты разработки
Получение локализованных сообщений
Присвоение начальных значений
Инициализация полей сущности
Инициализация с помощью CreateAction
Использование метода initNewItem
Редактирование композитных сущностей
Реализация композиции
Глубокая композиция
Выполнение кода на старте приложения
Загрузка и вывод изображений
Создание собственных визуальных компонентов
Пример использования стороннего компонента Vaadin
Пример интеграции компонента Vaadin в Generic UI
Развертывание приложений
Каталоги приложения
Конфигурационный каталог
Рабочий каталог
Каталог журналов
Временный каталог
Каталог скриптов базы данных
Варианты развертывания
Быстрое развертывание в Tomcat
Использование Tomcat при эксплуатации приложения
Развертывание в WAR
Масштабирование приложения
Настройка кластера Web Client
Установка и настройка Load Balancer
Настройка серверов Web Client
Настройка кластера Middleware
Настройка обращения к кластеру Middleware
Настройка взаимодействия серверов Middleware
Server Id
Использование инструментов JMX
Встроенная JMX консоль
Настройка удаленного доступа к JMX
Tomcat JMX под Windows
Tomcat JMX под Linux
Создание и обновление БД при эксплуатации приложения
Использование механизма выполнения скриптов БД сервером
Инициализация и обновление БД из командной строки
Использование файла лицензии
Подсистема безопасности
Компоненты подсистемы безопасности
Окно входа в систему
Пользователи
Замещение пользователей
Часовой пояс
Разрешения
Роли
Группы доступа
Ограничения
Атрибуты сессии
Интеграция с LDAP
Базовая интеграция с Active Directory
Настройка аутентификации с использованием Jespa
Подключение библиотеки
Настройка конфигурации
Примеры управления доступом
Настройка ролей
Создание локальных администраторов
Конфигурационные файлы
context.xml
datatypes.xml
dispatcher-spring.xml
menu.xml
metadata.xml
permissions.xml
persistence.xml
remoting-spring.xml
screens.xml
spring.xml
views.xml
web.xml
Свойства приложения
Системные свойства
Основные определения и понятия
Search Highlighter (On/Off)