Прошу прощения за неконкретный вопрос, но я не знаю, как выразить это в одном предложении. Вот почему я даже не мог попытаться найти это в Google.
У меня есть ресурс DropWizard, и я использовал Hibernate для доступа к своей БД. У меня есть следующие объекты с их атрибутами.
Trip
====
id
from_place
to_place
time
user_who_booked_it
trip_group_ref
TripGroup
=========
id
from_place
to_place
time
TripGroup
в основном группирует все поездки, которые имеют одинаковые места и время. Позже это пригодится в некоторых других задачах.
Ресурс, который создает объект Trip
, сначала должен проверить, существует ли соответствующий объект TripGroup
, и если нет, то он создает его. Это создает проблему. При наличии одновременных запросов возможно создание двух или более TripGroup
экземпляров с точно такими же параметрами.
Как мне это решить?
Одним из возможных решений может быть то, что я оберну часть кода, которая проверяет и создает эти объекты, внутри блока synchronized
. Однако, возможно, это не сработает, поскольку фиксация будет запущена после завершения метода ресурса, то есть за пределами блока synchronized
.