Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> JPA: фреймворки над JPA? 
:(
    Опции темы
Andrey1
Дата 20.5.2008, 15:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 621
Регистрация: 27.2.2004
Где: Moscow

Репутация: 2
Всего: 5



Начал использовать JPA, но столкнулся с тем, что нужно реализовывать DAO классы с одинаковой непростой логикой: 
*) инициализация EntityManager или использование существующего EntityManager ;
*) включение/отключение autoCommit; 
*) isExist - проверка существования объекта в базе, по ключу или другим полям.
*) persistOrSkip - сохранения объекта, только если его ключа еще нет в базе.
*) persistOrUpdate - сохранения или обновления объекта (если он уже существует).

То есть, напрашивается создание класса предка...

Может уже есть некоторые фреймворки (над JPA) для решение аналогичных задач?


--------------------
Созерцание и мудрость - едины. Соцерцание - это основа мудрости, а мудрость - это функция (т.е. умение использовать) созерцания.
из сутры помоста шестого патриарха Хуэйнена
PM MAIL WWW ICQ   Вверх
fixxer
Дата 20.5.2008, 16:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 672
Регистрация: 14.9.2006
Где: Саратов, Россия

Репутация: 4
Всего: 27



Spring


--------------------
user posted image
PM MAIL ICQ   Вверх
Andrey1
Дата 20.5.2008, 16:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 621
Регистрация: 27.2.2004
Где: Moscow

Репутация: 2
Всего: 5



fixxer, 
Ой баюсь я этого Spring... и не знаю, дает ли оно то, что я написал?...


--------------------
Созерцание и мудрость - едины. Соцерцание - это основа мудрости, а мудрость - это функция (т.е. умение использовать) созерцания.
из сутры помоста шестого патриарха Хуэйнена
PM MAIL WWW ICQ   Вверх
sith
Дата 21.5.2008, 09:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 537
Регистрация: 11.2.2007

Репутация: нет
Всего: 1



... он дает...  smile ... а бояться не стоит так как рано или поздно ты сталкнешься с этим фреймворком... так что лутше наверно рано smile


--------------------
Там где ты ставишь глупые смайлики, я вбиваю восклицания знаки!!!
PM MAIL   Вверх
Andrey1
Дата 22.5.2008, 12:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 621
Регистрация: 27.2.2004
Где: Moscow

Репутация: 2
Всего: 5



Цитата(sith @  21.5.2008,  09:43 Найти цитируемый пост)
так как рано или поздно ты сталкнешься с этим фреймворком... 


Я такой уверенности не разделяю smile.


--------------------
Созерцание и мудрость - едины. Соцерцание - это основа мудрости, а мудрость - это функция (т.е. умение использовать) созерцания.
из сутры помоста шестого патриарха Хуэйнена
PM MAIL WWW ICQ   Вверх
diablero
Дата 22.5.2008, 17:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 337
Регистрация: 3.12.2006
Где: Аркхэм

Репутация: 2
Всего: 5



Цитата(Andrey1 @  20.5.2008,  15:51 Найти цитируемый пост)
Может уже есть некоторые фреймворки (над JPA) для решение аналогичных задач?

На мой взгляд использование фрейморков должно быть оправданным. Те задачи которые вы перечислили, решаемы и довольно легко вручную.
 



--------------------
Есть два варианта решения проблемы - реальный и фантастический. Реальный - это когда прилетят инопланетяне и все за нас сделают ...
PM MAIL   Вверх
Andrey1
Дата 23.5.2008, 15:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 621
Регистрация: 27.2.2004
Где: Moscow

Репутация: 2
Всего: 5



Цитата(diablero @  22.5.2008,  17:16 Найти цитируемый пост)
Те задачи которые вы перечислили, решаемы и довольно легко вручную.

Ага, для 10 Entity пока все делаю универсальным способом copy-paste. ...Пока в самом первом источнике для copy-paste не найдется ошибка  smile... (а жизнь учит тому, что такая ошибка рано или поздно найдется  smile )

Это сообщение отредактировал(а) Andrey1 - 23.5.2008, 15:56


--------------------
Созерцание и мудрость - едины. Соцерцание - это основа мудрости, а мудрость - это функция (т.е. умение использовать) созерцания.
из сутры помоста шестого патриарха Хуэйнена
PM MAIL WWW ICQ   Вверх
Andrey1
Дата 5.6.2008, 09:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 621
Регистрация: 27.2.2004
Где: Moscow

Репутация: 2
Всего: 5



1) В "Java Persistence with Hibernate" предлагают использовать GenericDAO. Вопрос только, действительно ли это упрощает жизнь smile ...

2) Нашел что в Seam есть какая-то возможность использовать DAO классы не создавая их. Интересно, полноценные ли это DAO классы?...


--------------------
Созерцание и мудрость - едины. Соцерцание - это основа мудрости, а мудрость - это функция (т.е. умение использовать) созерцания.
из сутры помоста шестого патриарха Хуэйнена
PM MAIL WWW ICQ   Вверх
Andrey1
Дата 10.6.2008, 18:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 621
Регистрация: 27.2.2004
Где: Moscow

Репутация: 2
Всего: 5



Вот что нашлось: "Java toolkit which makes DAO manager creating easier.": http://code.google.com/p/generic-dao/


--------------------
Созерцание и мудрость - едины. Соцерцание - это основа мудрости, а мудрость - это функция (т.е. умение использовать) созерцания.
из сутры помоста шестого патриарха Хуэйнена
PM MAIL WWW ICQ   Вверх
fixxer
Дата 10.6.2008, 18:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 672
Регистрация: 14.9.2006
Где: Саратов, Россия

Репутация: 4
Всего: 27



Судя по всему это реализация GenericDAO из книжки Java Persistence with Hibernate


--------------------
user posted image
PM MAIL ICQ   Вверх
Andrey1
Дата 11.6.2008, 10:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 621
Регистрация: 27.2.2004
Где: Moscow

Репутация: 2
Всего: 5



Цитата(fixxer @  10.6.2008,  18:54 Найти цитируемый пост)
Судя по всему это реализация GenericDAO из книжки Java Persistence with Hibernate 

Это - реализация GenericDAO для JPA. GenericDAO из книги - для Hibernate.


Это сообщение отредактировал(а) Andrey1 - 11.6.2008, 10:46


--------------------
Созерцание и мудрость - едины. Соцерцание - это основа мудрости, а мудрость - это функция (т.е. умение использовать) созерцания.
из сутры помоста шестого патриарха Хуэйнена
PM MAIL WWW ICQ   Вверх
xeye
Дата 11.6.2008, 12:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 5.6.2008

Репутация: нет
Всего: 1



Цитата(Andrey1 @ 20.5.2008,  15:51)
Начал использовать JPA, но столкнулся с тем, что нужно реализовывать DAO классы с одинаковой непростой логикой: 
*) инициализация EntityManager или использование существующего EntityManager ;
*) включение/отключение autoCommit; 
*) isExist - проверка существования объекта в базе, по ключу или другим полям.
*) persistOrSkip - сохранения объекта, только если его ключа еще нет в базе.
*) persistOrUpdate - сохранения или обновления объекта (если он уже существует).

там от спринга один класс можно взять, который HibernateDAO. а транзакциями в простом веб приложении управляет OpenSessionInView фильтр. в общем, полно есть простых решений, без всяких спрингов smile
PM MAIL   Вверх
Andrey1
Дата 11.6.2008, 13:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 621
Регистрация: 27.2.2004
Где: Moscow

Репутация: 2
Всего: 5



У этой реализации GenericDAO есть один очень существенные минус: DAO реализуется для Entity, которые должны implements оберточный интерфейс IEntity<PK>:

Код

public interface IEntity<I extends Serializable> extends Serializable {

    /**
     * Property which represents id.
     */
    String P_ID = "id";

    /**
     * Get primary key.
     *
     * @return primary key
     */
    I getId();

    /**
     * Set primary key.
     *
     * @param id primary key
     */
    void setId(I id);
}


Посему для готовых Entity этот фреймворк, похоже, в лоб не применим :(.


--------------------
Созерцание и мудрость - едины. Соцерцание - это основа мудрости, а мудрость - это функция (т.е. умение использовать) созерцания.
из сутры помоста шестого патриарха Хуэйнена
PM MAIL WWW ICQ   Вверх
fixxer
Дата 12.6.2008, 01:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 672
Регистрация: 14.9.2006
Где: Саратов, Россия

Репутация: 4
Всего: 27



Цитата(Andrey1 @ 11.6.2008,  10:32)
Цитата(fixxer @  10.6.2008,  18:54 Найти цитируемый пост)
Судя по всему это реализация GenericDAO из книжки Java Persistence with Hibernate 

Это - реализация GenericDAO для JPA. GenericDAO из книги - для Hibernate.

А что, архитектурно есть какая-то разница?


--------------------
user posted image
PM MAIL ICQ   Вверх
Andrey1
Дата 16.6.2008, 10:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 621
Регистрация: 27.2.2004
Где: Moscow

Репутация: 2
Всего: 5



Цитата(fixxer @  12.6.2008,  01:05 Найти цитируемый пост)
А что, архитектурно есть какая-то разница? 

Просто другая реализация. Если используется JPA - значит нужен фреймворк для JPA smile.


--------------------
Созерцание и мудрость - едины. Соцерцание - это основа мудрости, а мудрость - это функция (т.е. умение использовать) созерцания.
из сутры помоста шестого патриарха Хуэйнена
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0558 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.