Comments 9
В сети таких туториалов огромная куча. Ещё там обычно тестовый проект прилагается, чтобы новичок (на которого рассчитана такая статья) мог пощупать проект. Не описано, как подключить БД к приложению: можно ведь через xml-конфигурацию (которых тоже несколько видов — persistence.xml, orm.xml), а можно и в классе всё настроить. А ещё можно не использовать конкретную реализацию JPA-провайдера, а использовать ту, что предлагает сервер приложений и соединение с БД настроить на нём.
Нет листинга HibernateUtil, который вроде как в коде присутствует.
Рассказал бы лучше про Lazy Loading и как с ней бороться, каскадности там всякие, преимущества Hibernate перед просто спецификацией JPA.
На правах рекламы — моё демо-приложение, использующее JavaEE, JPA и JAX-RS (и WildFly). И небольшое описание toster.ru/q/207938#answer_563870
Нет листинга HibernateUtil, который вроде как в коде присутствует.
Рассказал бы лучше про Lazy Loading и как с ней бороться, каскадности там всякие, преимущества Hibernate перед просто спецификацией JPA.
На правах рекламы — моё демо-приложение, использующее JavaEE, JPA и JAX-RS (и WildFly). И небольшое описание toster.ru/q/207938#answer_563870
Спасибо за отзыв. думаю, в последующих статьях я начну выкладывать примеры для новичков. HibernateUtil нет, потому что в данной статье мы не делаем ничего особенно сложного с ним. выложу, когда начнем говорить про тестирование. Про подключение я действительно забыл. Дополню позднее.
Про Lazy Loading будет через одну статью. Уже начал писать)
Про Lazy Loading будет через одну статью. Уже начал писать)
Ну просто новичок не сможет по такой статье создать приложение и потестить его, хотя бы потому, что половины нужного кода нет.
Кстати, есть целая куча статей по хибернейту, правда на английском. Хотя примеры там крайне простые и понятные. И привязки к Spring нет (хотя тут её тоже нет), так что их можно использовать и в «SE»-приложениях тоже.
Кстати, есть целая куча статей по хибернейту, правда на английском. Хотя примеры там крайне простые и понятные. И привязки к Spring нет (хотя тут её тоже нет), так что их можно использовать и в «SE»-приложениях тоже.
Вдогонку: обычно то, что аннотированно Entity зовётся сущностью, а не SessionBean'ом, и его название схоже с именем таблицы (в данном случае, просто Session). Session-бином обычно обзывают класс, содержащий бизнес-логику. А чтобы быть бином, классу достаточно просто иметь конструктор по-умолчанию, откуда взялись ещё 2 условия, непонятно.
Для DAO обычно создаётся абстрактный generic-класс, в котором реализована большая часть кода (потому что для разных сущностей он фактически одинаковый). Судя по отсутствию в классе NEXEntityDAO слова extend, и наличию аннотаций Override, смею предположить, что код вставился криво и этот класс где-то есть, но не тут.
Ну и использовать нетипизированные запросы — плохо. Есть же TypedQuery
Для DAO обычно создаётся абстрактный generic-класс, в котором реализована большая часть кода (потому что для разных сущностей он фактически одинаковый). Судя по отсутствию в классе NEXEntityDAO слова extend, и наличию аннотаций Override, смею предположить, что код вставился криво и этот класс где-то есть, но не тут.
Ну и использовать нетипизированные запросы — плохо. Есть же TypedQuery
Извините, промазал с комментарием. См. habrahabr.ru/post/255829/#comment_8377963
А чтобы быть бином, классу достаточно просто иметь конструктор по-умолчанию, откуда взялись ещё 2 условия, непонятно.Условие про конструктор со всеми параметрами, очевидно, бредовое. Обычно под бинами в яве понимают то, что описано спеке JavaBeans (http://www.oracle.com/technetwork/java/javase/documentation/spec-136004.html).
Минимально для этого нужно следующее:
— no-arg public constructor
— implements Serializable
— отсутствуют публичные поля, свойства доступные через геттеры и сеттеры.
А скажите пожалуйста где в статье про Spring?
Ну зачем? В Spring есть SpringData по этой причине закат солнца в ручную с утомительным написанием своих DAO уже не требуется.
В последнее время для персистенси предпочитаю использовать MyBatis 3 на аннотациях. Прикрутил к нему плагин для FreeMarker, и всё вообще идеально. Никаких сложных statefull фреймворков, всё на кончиках пальцев, и не многословно )
Sign up to leave a comment.
Spring + Hibernate для новичков