Не могли бы вы помочь мне найти лучшее решение для следующей проблемы ... В моей доменной модели есть иерархия:
class Document {
Int Id;
String Title;
}
class Agreement : Document {
DateTime Signed;
}
Постоянная стратегия - таблица для класса.Т.е. 2 таблицы: «Документы» (Id, ...) и «Соглашения» (Fk_document, ...)
Первая операция - регистрация документа.На данный момент я не знаю настоящий тип документа.Поэтому я создаю новый документ и заполняю его свойство «Заголовок».
Через некоторое время я получаю дополнительную информацию.В соответствии с этим ранее зарегистрированным документом фактически было соглашение, которое было подписано в какой-то момент.Теперь я могу заполнить свойство «Подписано» Соглашения.
Но для этого необходимо каким-то образом преобразовать тип из документа в соглашение.Я мог бы сделать SQL-вызов следующим образом:
INSERT INTO AGREEMENTS (FK_DOCUMENT, SIGNED_DATE) VALUES ( 1111111, TO_DATE('01-01-2000') )
(где '1111111' - это идентификатор, который Hibernate назначает документу при первом его сохранении)
Я считаю, что это не лучший способвсе!Но я не мог найти других ... Спасибо!
(Я придумал этот пример, реальный вариант использования довольно сложный, и я не хочу загромождать вопрос. Документы должны быть сохранены каккак можно скорее)