Предположим, у меня есть система, которая выполняет аудит действий пользователя:
как пользователь по имени XXX, сделал чашку чая, а затем сделал ..., затем сделал ...
поэтому есть таблица с UserActions (userId, actionId)
теперь пользователь женат и - в моей системе - теперь у него могут быть дети, поэтому я хочу преобразовать сущность обычного пользователя в женатую сущность пользователя, которая может иметь список детей (других сущностей обычного пользователя)
как:
конкретный родительский объект:
@Entity
@Inheritance(strategy = InheritanceType.JOINED)
public class User extends Model {
}
конкретная дочерняя сущность:
@Entity
public class MarriedUser extends User {
@OneToMany()
public List<User> children;
}
и моя проблема заключается в том, как записать код в контроллере для продвижения сущности в базе данных от родителя (пользователя) к потомку (MarriedUser) - обычно это делается в базе данных, просто вставляя новую запись в Таблица MarriedUser с тем же идентификатором пользователя (как я делаю объединение InheritanceType), поэтому в базе данных это просто, но код гибернации это то, чего я не знаю.
Я сказал вам информацию об аудите, потому что я не могу просто удалить пользователя XXX и создать нового замужнего пользователя с новым идентификатором, он мне нужен с тем же идентификатором.
поэтому, пожалуйста, помогите мне с кодом гибернации ...