Pull to refresh

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 будет через одну статью. Уже начал писать)
Ну просто новичок не сможет по такой статье создать приложение и потестить его, хотя бы потому, что половины нужного кода нет.

Кстати, есть целая куча статей по хибернейту, правда на английском. Хотя примеры там крайне простые и понятные. И привязки к Spring нет (хотя тут её тоже нет), так что их можно использовать и в «SE»-приложениях тоже.
Вдогонку: обычно то, что аннотированно Entity зовётся сущностью, а не SessionBean'ом, и его название схоже с именем таблицы (в данном случае, просто Session). Session-бином обычно обзывают класс, содержащий бизнес-логику. А чтобы быть бином, классу достаточно просто иметь конструктор по-умолчанию, откуда взялись ещё 2 условия, непонятно.
Для DAO обычно создаётся абстрактный generic-класс, в котором реализована большая часть кода (потому что для разных сущностей он фактически одинаковый). Судя по отсутствию в классе NEXEntityDAO слова extend, и наличию аннотаций Override, смею предположить, что код вставился криво и этот класс где-то есть, но не тут.
Ну и использовать нетипизированные запросы — плохо. Есть же TypedQuery
А чтобы быть бином, классу достаточно просто иметь конструктор по-умолчанию, откуда взялись ещё 2 условия, непонятно.
Условие про конструктор со всеми параметрами, очевидно, бредовое. Обычно под бинами в яве понимают то, что описано спеке JavaBeans (http://www.oracle.com/technetwork/java/javase/documentation/spec-136004.html).

Минимально для этого нужно следующее:
— no-arg public constructor
— implements Serializable
— отсутствуют публичные поля, свойства доступные через геттеры и сеттеры.
Ну зачем? В Spring есть SpringData по этой причине закат солнца в ручную с утомительным написанием своих DAO уже не требуется.
В последнее время для персистенси предпочитаю использовать MyBatis 3 на аннотациях. Прикрутил к нему плагин для FreeMarker, и всё вообще идеально. Никаких сложных statefull фреймворков, всё на кончиках пальцев, и не многословно )
Sign up to leave a comment.

Articles