#java #hibernate #persistent
#java #спящий режим #постоянный
Вопрос:
У меня есть таблица, в которой хранится поле ID, которое используется для связывания многих других дочерних объектов в режиме гибернации.
Все дочерние таблицы имеют сгенерированный столбец с именем «Parent_ID» или что-то подобное. Объект верхнего уровня также имеет некоторые общие поля, такие как CreatedBy, UpdatedBy, CreatedDate и updatedDate.
В момент обновления дочернего объекта нет триггера для обновления родительских полей «Updated ###». Мне нужно одно поле, в котором хранится информация о любых дочерних обновлениях. Возможно ли это? Я пробовал несколько разных способов, а также читал документы. Я новичок в режиме гибернации, поэтому, если это нарушает некоторые фундаментальные принципы, пожалуйста, дайте мне знать.
Ответ №1:
Если вы пометите этот столбец как @Version
, а затем ассоциацию, в которой содержится дочерний объект Cascade.ALL
, версия будет «увеличиваться» автоматически при вызове EntityManager.merge
родительского объекта.