Вы можете использовать стратегию наследования hibernate.
Если при создании объекта вы знаете, что он будет удален к концу дня, вы можете создать VolatileTrade, который является подклассом Trade (без других атрибутов). Используйте стратегию «таблица на конкретный класс» ( раздел 9.1.5 справочной документации по hibernate 3.3) для отображения.
(Я думаю, я бы сделал абстрактную суперклассовую сделку и два конкретных подкласса: PersistentTrade и VolatileTrade, так что если у вас есть другие классы, которые, как вы знаете, будут ссылаться только на PersistentTrade (или Volatile), вы можете ограничить это в своем коде . Если вы использовали суперкласс Trade в качестве PersistentTrade, вы не сможете применить его.)
Волатильная сделка перейдет в одну таблицу, а «постоянная» сделка - в другую таблицу.
Имейте в виду, что вы не сможете установить ограничение fk для любой Сделки (постоянной и изменчивой) из другой таблицы в БД.
Тогда вам просто нужно очистить стол, когда захотите.
Будьте внимательны, чтобы определить механизм блокировки, чтобы никакой другой поток не пытался записать данные в таблицу во время удаления и создания (если вы используете это). Это будет непростой задачей, и ее правильное выполнение может повлиять на производительность всех операций, вставляющих данные в таблицу (поскольку это потребует получения блокировки).
Разве не проще усечь таблицу?