powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Spring vs Hibernate (Transaction & Cache management)
8 сообщений из 8, страница 1 из 1
Spring vs Hibernate (Transaction & Cache management)
    #34919341
guest1850
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уважаемые, Гуру!!!
Помогите советом. есть связка spring + hibernate. И там и там есть инструменты управления транзакциями и кэшем. Положить это на уровень spring'a или на уровень hibernate'a ?
Можно конечно на спринг, и тогда мы не будем зависеть от конкретной реализации (хиберней или ibatis или ...). Но судя по букварям (spring reference,hibernate reference, spring in action, hibernate in action) в хибернейте более гибкое управление кешем, и код с транзакциями в хибернейте:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Transaction tx =  null ;
 try  {
tx = sess.beginTransaction();
// do some work
...
tx.commit();
}
 catch  (RuntimeException e) {
 if  (tx !=  null ) tx.rollback();
 throw  e; // or display error message
}
 finally  {
sess.close();
}

Выглядит попрекрасней чем в спринге:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
 public   void  increasePriceOfAllProductsInCategory( final  String category) {
 this .transactionTemplate.execute( new  TransactionCallbackWithoutResult() {
 public   void  doInTransactionWithoutResult(TransactionStatus status) {
List productsToChange =  this .productDao.loadProductsByCategory(category);
// do the price increase...
}
}
);
}
...
Рейтинг: 0 / 0
Spring vs Hibernate (Transaction & Cache management)
    #34919395
vas0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а почему бы на spring не использовать декларативное управление транзакциями?

Плюс в спринге сможешь интеграционные тесты писать с помощью AbstractTransactionalSpringContextTests
...
Рейтинг: 0 / 0
Spring vs Hibernate (Transaction & Cache management)
    #34919410
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Транзакции должны быть завязаны на слой бизнес логики. Поэтому явные транзакции в классах работы с hibernate (DAO) обычно не нужны. И как сказали выше, декларативное управление - наше всё.
...
Рейтинг: 0 / 0
Spring vs Hibernate (Transaction & Cache management)
    #34919513
guest1850
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за ответы, с транзакциями стало ясно, заюзаю декларативные транзакции через аннотации. А вот с кешированием пока еще не ясно. Хотя наверно сделаю его в хибернейте.

Кстати как по "умному" разбивать слои по пакэджам. Например пакэдж BOL(Business Object Layer) а внутри него DAO. На уровне BOL интерфейсы и имплементешины вида MyService.java и MyServiceImpl.java
А на уровне DAO пэкаджа соот-но интерфейс MyDao.java и еще один пэкэдж Hibernate с классом MyDaoHibernate.java
т.е. графически:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
com.mycoolwebsite-|
                  +-BOL-|
                        MyService.java
                        MyServiceImpl.java
                        +-DAO-|
                              MyDao.java
                              +-Hibernate-|
                                          MyDaoHibernate.java
Или есть более "правильные" схемы?
...
Рейтинг: 0 / 0
Spring vs Hibernate (Transaction & Cache management)
    #34919542
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest1850Спасибо за ответы, с транзакциями стало ясно, заюзаю декларативные транзакции через аннотации. А вот с кешированием пока еще не ясно. Хотя наверно сделаю его в хибернейте.
Кеширование точно так же прикручивается декларативно к хибернейту. В конфиге хибера указывается кто обеспечиваей кеш. А все остальное уже дело настроек самого кеша.

guest1850Кстати как по "умному" разбивать слои по пакэджам.
Как удобно так и по "умному". Главное чтобы вам было так удобно писать, а другим удобно читать как вы напишете.
...
Рейтинг: 0 / 0
Spring vs Hibernate (Transaction & Cache management)
    #34919592
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest1850Или есть более "правильные" схемы?
Гугл, кстати помогает:
Package by feature, not layer
...
Рейтинг: 0 / 0
Spring vs Hibernate (Transaction & Cache management)
    #34919612
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Spring vs Hibernate (Transaction & Cache management)
    #34925202
Фотография Java Programmer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Разбивает каждый так как ему удобно - но есть интересные идеи - например в maven2 строго определена структура проекта - на вашем месте я бы поискал бы мавеновский артифакт на этот случай жизни
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Spring vs Hibernate (Transaction & Cache management)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]