Hibernate ", созданный с помощью спящего режима"

Когда я генерирую классы hibernate в eclipse, все файлы классов обновляются, хотя теперь в базе данных были внесены реальные изменения. Единственное изменение в большинстве файлов - это строка комментариев://Сгенерировано 15 июня 2011 г. 6:50:40 по Hibernate Tools 3.4.0.CR1.

Изменение этой строки при каждой регенерации неудобно, так как она нарушает отслеживание изменений в SVN.

Есть ли у вас указание поручить процессу генерации не генерировать эту строку?

Ответ 1

Я нашел это: https://forum.hibernate.org/viewtopic.php?f=6&t=989777&view=next

Я использую Windows 7 и NetBeans 7, поэтому файл hibernate-tools.jar был найден здесь: C:\Program Files\NetBeans 7.0\java\modules\ext\hibernate. Поскольку каталог Program Files обычно является только для чтения, мне пришлось открыть jar с помощью WinZip, который был открыт с правами администратора. NetBeans необходимо закрыть, чтобы изменить файл jar.

Затем я просто перешел к файлу /pojo/Pojo.ftl (для сгенерированного файла .java) и файла hbm\hibernate-mapping.hbm.ftl (для сгенерированного файла .hbm.xml) и открыл их в Блокноте. Я удалил только часть $(date), поэтому я сохранил используемую версию Hibernate. Когда я сохранил файлы в "Блокноте", Winzip обнаружил изменения и спросил, не хочу ли я обновить файл .jar.

Затем, когда я перезапустил NetBeans и сделал регенерацию моих файлов, дата исчезла. Вид боли, но он работает.

Ответ 2

Настройка шаблона freemarker (как объясняется CuppM) - это способ сделать это. Тем не менее, вы не вынуждены вводить настроенный шаблон обратно в банку. Например, если вы используете задачу hibernate tool ant, вы можете указать атрибуты "templatepath" и hbmtemplate:

<hibernatetool destdir="hibernate-model-gen/pojo" templatepath="hibernate-model-gen/customized-templates">
    <jdbcconfiguration configurationfile="hibernate-model-gen/hibernate.cfg.xml" packagename="open.pub.proto.core.model" revengfile="hibernate-model-gen\gen-conf\hibernate.reveng.xml" detectmanytomany="true" />
    <hbmtemplate templateprefix="pojo/" template="pojo/Pojo.ftl" filepattern="{package-name}/{class-name}.java">
        <property key="jdk5" value="true" />
        <property key="ejb3" value="true" />
    </hbmtemplate>
</hibernatetool>

Кроме того, это хорошая практика для создания pojos в выделенном каталоге, а не в исходном коде pojos. Затем вы можете скопировать только pojos, которые изменились на код сурового кода.