У меня есть умная программа, которая предоставила файл, содержащий очень специфические метаданные базы данных, для меня в eclipse генерируется целый проект. Он использует hibernate для доступа к базе данных и обеспечивает базовую функциональность crud, а также предоставляет интерфейс xhtml.
Все это прекрасно работает, и практически все можно сделать, если требуются простые операции. Однако, конечно, я ожидаю, что рано или поздно мне понадобится изменить этот проект, чтобы добиться определенного индивидуального поведения.
Я мог бы просто изменить проект и никогда не оглядываться назад, но я бы потерял огромное преимущество, связанное с возможностью регенерировать проект для добавления новых таблиц и поведения. Хотя я мог бы создать новый проект со своими изменениями и применить эти изменения вручную, я бы предпочел не делать это для каждого изменения, которое мне нужно сделать.
К сожалению, инструмент, который генерирует этот проект, не может быть затронут (по причинам, что это не наш инструмент, а инструмент сторонней софтверной компании, которая производит шаблоны проектов).
Я заметил, что он активно использует платформу Seam для создания экземпляров сгенерированных классов (используя @In(create = true)
). Можно ли как-нибудь расширить сгенерированный класс так, чтобы регенерирование существующих классов не отменяло мои изменения, но вместо этого создавались экземпляры этих расширенных классов?
Есть ли какая-то стратегия, которую я могу использовать, чтобы минимизировать изменение сгенерированных классов (идеальный случай - изменить поведение, просто добавив файлы в проект, хотя я понимаю, что это невозможно для файлов xhtml)? Буду признателен за любую помощь, хотя я понимаю, что некоторые изменения должны быть внесены в инструмент, прежде чем это станет возможным (например, фабрика?).