Обратный инжиниринг hibernate для включения свойства @Transient

Я пытаюсь включить следующее



private org.springframework.web.multipart.commons.CommonsMultipartFile photo;


    @Transient
    public CommonsMultipartFile getPhoto() {
        return photo;
    }

    public void setPhoto(CommonsMultipartFile photo) {
        this.photo = photo;
    }

в моем классе pojo, сгенерированном из таблицы базы данных.

Я изучал, чтобы найти способ упомянуть дополнительный код класса в метатеге, как показано ниже

http://www.scribd.com/doc/23123635/30/Guiding-the-reverse-engineering-process

но это не позволяет добавить свойство переменной фото.

Пожалуйста, предложите способ, как я могу сделать это в местьем. Чтобы этот код включался при каждом запуске hbm2java.

Заранее спасибо!

2 ответа

Решение

Вы можете добиться такого пользовательского кода с помощью шаблонов мести. Если вы откроете hibernate-tools.jar вы найдете файлы.ftl в pojo папка. Вам нужно переопределить их, чтобы поставить пользовательский код.

шаги:

  1. Если вы используете Maven, поместите это под componentProperties для цели hbm2java:

    <templatepath>src/main/resources/reveng.templates/</templatepath>
    <filepattern>*.java</filepattern>
    
  2. Создайте revenge.templates/pojo папка под ресурсами. Убедитесь, что имя папки всегда pojoв противном случае переопределения не обнаруживаются.

  3. Создайте pojo.ftl файл и скопировать содержимое из pojo.ftl файл присутствует в банке. Добавьте все операторы импорта в этом файле.

  4. Аналогично, следуйте другим файлам, чтобы узнать, куда именно вы хотите поместить пользовательский код.

Насколько я знаю, нет никакого способа указать это ни в файле Сборка мест или в пользовательском ReverseEngineeringStrategy.

Способ решения этой проблемы заключается в расширении всех сгенерированных базовых классов POJO с помощью пользовательского слоя классов и добавлении в него временных свойств и специальных режимов поведения. Не совсем то, что вы просили, но он работает хорошо и обеспечивает гибкость, не жертвуя преимуществами генерации кода.

Другие вопросы по тегам