
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
29.11.2005, 13:25
|
|||
|---|---|---|---|
|
|||
Spring, Hibernate. Как лучше совместно использовать sessionFactory? |
|||
|
#18+
Для spring-а можно сделать синглтон: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. Есть простой класс Client. class Client { private Integer id; private String name; } Допустим, что клиент может создать дневник: class Client { private Integer id; private String name; public Journal createJournal(){ Journal j = new Journal(); session.... } } Вопрос: где взять session? 3. Варианта: (1) Использовать класс HibernateUtil: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. (2) Использовать Spring Injection в клиента для SessionFactory, и сделать клиента прототипом. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Подход (1) с использованием класса HibernateUtil работает всегда. Если мы захотим вытащить всех клиентов, не имеющих Journal и вызвать для каждого метод createJournal, подход (2) не будет работать по причине NullPointerException. (3) Можно использовать класс ClientService в который будет Injected SessionFactory и который будет иметь метод: createJournalForClient(Client client); Здесь все хорошо, но хочется (видится более правильным и логичным) вызывать метод createJournal у объекта client. Так же хочется иметь service классы в которых можно делать нечто другое. И в них действительно удобно использовать Dependency Injection от Spring -а. Вобщем вопрос тем, кто использует Spring и Hibernate? как лучше организовать доступ к SessionFactory из слоя service и из слоя dao. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
29.11.2005, 14:13
|
|||
|---|---|---|---|
|
|||
Spring, Hibernate. Как лучше совместно использовать sessionFactory? |
|||
|
#18+
Hibernate 3.0.1 introduced a feature called "contextual Sessions", where Hibernate itself manages one current Session per transaction. This is roughly equivalent to Spring's synchronization of one Hibernate Session per transaction. A corresponding DAO implementation looks like as follows, based on plain Hibernate API: public class ProductDaoImpl implements ProductDao { private SessionFactory sessionFactory; public void setSessionFactory(SessionFactory sessionFactory) { this.sessionFactory = sessionFactory; } public Collection loadProductsByCategory(String category) { return this.sessionFactory.getCurrentSession() .createQuery("from test.Product product where product.category=?") .setParameter(0, category) .list(); } } This Hibernate access style is very similar to what you will find in the Hibernate documentation and examples, except for holding the SessionFactory in an instance variable. We strongly recommend such an instance-based setup over the old-school static HibernateUtil class from Hibernate's CaveatEmptor sample application! (In general, do not keep any resources in static variables unless absolutely necessary!) Это кусок из spring_reference 1.2.5 Кому нетрудно, может прокомментировать этот текст, всвязи с первым постом. Про feature called "contextual Sessions" - не понял. Понял лишь то, что они против хранения SessionFactory в static переменной класса HibernateUtil. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
30.11.2005, 08:35
|
|||
|---|---|---|---|
|
|||
Spring, Hibernate. Как лучше совместно использовать sessionFactory? |
|||
|
#18+
Нашел подобный топик. Там более четко сформулирован мой вопрос. http://forum.springframework.org/showthread.php?t=9846 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
30.11.2005, 13:45
|
|||
|---|---|---|---|
|
|||
Spring, Hibernate. Как лучше совместно использовать sessionFactory? |
|||
|
#18+
Кому интересно, вот решение: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. Все нужные файлы находятся пока в песочнице на CSV сервере. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/search_topic.php?author=oz_oz&author_mode=last_posts&do_search=1]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
get settings: |
7ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
144ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
33ms |
get tp. blocked users: |
1ms |
| others: | 740ms |
| total: | 974ms |

| 0 / 0 |
