HIbernate - Изоляция - Вставить запись

Вариант использования

Необходимо хранить купоны, примененные Клиентом при покупке продукта.

Структура таблицы приведена ниже.

ID | USERREF | КУПОНКОД | ДАТА

  1. Для одного пользователя - купон на одноразовое использование
  2. Для одного пользователя - купон на многократное использование
  3. Многопользовательская - Один купон
  4. Многопользовательская - многократный купон

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

Что касается варианта использования, однопользовательский - одноразовый купон, у меня могут возникнуть проблемы. Один и тот же пользователь может подать заявку в 2 разных режимах. Один из них - я использую синхронизированный блок где-то во время операций чтения / записи или использую блокировку таблицы в приведенной выше таблице, когда я фактически читаю данные.

То же самое и для других, один пользователь - многократное использование, может возвращать несколько строк, и я могу ограничить до 3 раз использования одного и того же купона для пользователя.

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

Я вижу много возможных вопросов в самой конструкции вашей базы данных, и я думаю, что вам следует начать с них, прежде чем использовать Hibernate.

Tim Biegeleisen 24.10.2018 08:16

@TimBiegeleisen На самом деле я хочу сделать это таким, динамичным и одной таблицей для всех видов использования, но все, что вы хотите предложить, вы можете упомянуть здесь.

Ankur Singhal 24.10.2018 08:28
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
2
23
0

Другие вопросы по теме