Hibernate не создает классы Java. Что я могу сделать? - PullRequest
0 голосов
/ 08 октября 2010

Я использую NetBeans 6.5.1 и Hibernate 3.2.5.

Я прошел через это руководство , используя другую существующую базу данных (Oracle 10g XE). Создание файла конфигурации работает нормально, а также создание класса HibernateUtil.java. Затем учебник хочет, чтобы я запустил мастер обратного проектирования, но этого мастера не существует. Вместо этого я использовал «Hibernate Mapping Files и POJO из базы данных».

Там я выбрал таблицы, которые я хочу отобразить, и включил «Функции языка JDK 5», «Код домена» и «Отображения XML Hibernate». После выбора пакета и нажатия кнопки «Готово» создается файл «hibernate.reveng.xml», и все.

Нет классов Java, и NetBeans не выдает мне сообщения, почему ничего не создано. Что случилось? Я что-то упустил и что мне делать дальше?

Добавить: Этот урок показывает, как он должен работать с 6.5 (да, я знаю, ... бета). Шаги, которые нужно выполнить, - это именно те шаги, которые я сделал, но классы по-прежнему не создаются.

Ответы [ 2 ]

1 голос
/ 25 ноября 2010

У меня такая же проблема при использовании NB 6.9.1.Поиск в дальнейшем показал, что в этой версии есть известная ошибка. Ссылка на ошибку 190740

Однако, не полностью удовлетворена ("это ошибка" в качестве ответа) Я попробовал это в NB 6.8 и получил ту же проблему.После создания POJO и файлов сопоставления вручную в соответствии с разделом в конце учебника, озаглавленном «Создание POJO и сопоставление файлов по отдельности», я перешел к оставшейся части учебника и обнаружил ошибку при попытке проверить HQL.Это фактически выдвинуло на первый план ошибку в редакторе файла конфигурации Hibernate, который используется в начале урока:

В разделе «Изменение файла конфигурации Hibernate» в уроке сказано добавить свойство в Разные свойстваузел hibernate.cfg.xml.Если вы следуете инструкции и вводите значение свойства вручную в соответствии с руководством, то все хорошо, но если - как и я - вы немного ленивый ;-) и используете вкладку дизайна редактора Netbeans для редактирования этого свойствазатем вместо ввода значения "org.hibernate.hql.classic.ClassicQueryTranslatorFactory" вы, несомненно, выберете значение "org.hibernate.hql.classic.ClassicQueryTransactionFactory" из раскрывающегося списка.Это выглядит довольно похоже, но на самом деле, нет !, редактор имеет орфографическую ошибку: то есть он говорит «TransACTION» вместо «TransLATOR».

Когда я исправил это (т.е. установил значение свойства в:

<property name="hibernate.query.factory_class">
    org.hibernate.hql.classic.ClassicQueryTranslatorFactory</property>

и (что, я думаю, важно) ПЕРЕЗАПУСТИЛИ проект (я думаю, что я, возможно, также перезапустил Netbeans для хорошей меры, хотя я уверен, что в этом нет особой необходимости), внезапно "Файлы отображения Hibernate иМастер POJO "начал все это чинить! Это работало для меня как в NB6.8, так и в NB6.9.1. Так что теперь я могу удалить все файлы sakila.entity. * POJO, а также файлы отображения ресурсов / sakila.entity. * (И удалить<mapping /> записей, которые он создал в файле hibernate.cfg.xml) et voila! Мастер создания карт и POJO создаст их для меня снова без всяких проблем.

Надеюсь, что поможет

Брайан

0 голосов
/ 09 октября 2010

Вы сделали Hibernate.cfg.xml? Я полагаю, что так, хотя я и не прочитал весь учебник, чтобы выяснить это. Из того, что вы описываете, вы используете плагин / инструмент для генерации отображений.

Убедитесь, что ваш hibernate.cfg.xml настроен правильно. Сохраняет жизнь. установка логгера также поможет вам понять, в чем дело. (обычное ведение журнала или log4j).

Если вы действительно хотите использовать hibernate, используйте maven / ant и генерируйте ваши сопоставления, а также все, что вам нужно с HibernateTools (в maven это будет http://mojo.codehaus.org/maven-hibernate3/hibernate3-maven-plugin/). Это, в конце концов, сэкономит вам много времени и хлопот. Я не уверен, что netbeans использует для их генерации, но я попробовал это в 6.8, и результаты были почти идеальными по сравнению с тем, что дал мне maven.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...