Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Тетерициские вопросики по Hibernate / 20 сообщений из 20, страница 1 из 1
04.05.2005, 19:45
    #33049056
andrushok
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тетерициские вопросики по Hibernate
Таки начальсто убедило меня, что hibernate следует пользовать. Хотя, я не очень в этом всеже уверен. Собственно, почему к уважаемому народу и обращаюся.

1) Любой объект должен иметь ID согласно hibernate.
- Ecли ID нема - насколько сложно использовать суррогатные ID?
- Ecли ID - текстовое значение, будут ли проблемы?
- Если у меня в базе (Oracle) уже есть sequence - на сколько сложно его подключить к генерации ID?

2) Многие объекты у меня кладуться в базу через stored procedure. Достаточно сложная логика (типа защифровать пароль, записать статистику, тп). Делать триггеры или паралельно ходить через JDBC? Триггеры, откровенно, не охота...

Пока усе...
...
Рейтинг: 0 / 0
04.05.2005, 20:33
    #33049134
EP
EP
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тетерициские вопросики по Hibernate
1. Именно их и нужно использовать
2. Нет
3. http://www.hibernate.org/hib_docs/v3/reference/en/html/mapping.html#mapping-declaration-id-sequences

По последней проблеме - http://www.hibernate.org/hib_docs/v3/reference/en/html/querysql.html

Также советую помотреть на нововведения в Hibernate 3 по поводу процедур - может и удастся выкрутиться вообще без SQL
...
Рейтинг: 0 / 0
04.05.2005, 20:54
    #33049161
andrushok
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тетерициские вопросики по Hibernate
Большой спасиб!
Бум осваивать, вторая ссылка особо полезная, так как может решить многие проблемы из первых вопросов.
...
Рейтинг: 0 / 0
05.05.2005, 08:21
    #33049474
EP
EP
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тетерициские вопросики по Hibernate
Вторая ссылка способна также свести на нет все, ради чего затевалось использование Hibernate

Не переусердствуйте ;)
...
Рейтинг: 0 / 0
06.05.2005, 17:48
    #33053464
andrushok
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тетерициские вопросики по Hibernate
Дык понятно...
Я жабой тольки-тольки начал заниматься, а так в основном базы ваял. И мне как-то неуютно стало, кады весь SQL за тебя делають... Оч.часто в SQL что-то подкрутить надо было. И одно время воше было все объесты через stored procedures класть.

Ну ладно, посмотрим.
...
Рейтинг: 0 / 0
06.05.2005, 22:27
    #33053767
andrushok
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тетерициские вопросики по Hibernate
Еще вопросик однако. Я тута в кишки hibernate полез и столкнулся с такой фиговиной. Вот кусок простецкого кода
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
		Session session = HibernateUtil.currentSession();
		Transaction tx = session.beginTransaction();
		Vep tst =  new  Vep();
		tst.setKey( "AAA");
		tst.setValue( "BBB");
		session.save( tst);
		tx.commit();
		HibernateUtil.closeSession();
Так здеся оказывается session.save( tst); не делает ничего в базе, а tx.commit(); и вставляет в базу объект, и коммитит его. Для чела, далекого от базы, что в лоб, что по лбу. А если допустим така ситуевина
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
		Session session = HibernateUtil.currentSession();
		Transaction tx = session.beginTransaction();
		Vep tst =  new  Vep();
		tst.setKey( "AAA");
		tst.setValue( "BBB");
		session.save( tst);

		VepCollection tstCol =  new  VepCollection();
                 int  tstCount = getCount(); // лезем в базу и берем количество Vepoв  
		tstCol.setLength(  new  Integer( tstCount));
		session.save( tstCol);

		tx.commit();
		HibernateUtil.closeSession();
То получаем задницу - tstCount на единицу меньше, так как tst появится в базе тольки после tx.commit(); Можно и так
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
		Session session = HibernateUtil.currentSession();
		Transaction tx = session.beginTransaction();
		Vep tst =  new  Vep();
		tst.setKey( "AAA");
		tst.setValue( "BBB");
		session.save( tst);
		tx.commit();

		tx = session.beginTransaction();
		VepCollection tstCol =  new  VepCollection();
                 int  tstCount = getCount(); // лезем в базу и берем количество Vepoв  
		tstCol.setLength(  new  Integer( tstCount));
		session.save( tstCol);

		tx.commit();
		HibernateUtil.closeSession();
Но тоже плохо, так как если упадет на второй транзакции - опять задница...

Есть ли у hibernate возможность выполнять SQL запросы, не кешируя их?
...
Рейтинг: 0 / 0
12.05.2005, 21:36
    #33060968
andrushok
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тетерициские вопросики по Hibernate
Да, не пользует народ особо hibernate. Жаль, а вопросики лезуть и лезуть.. Вот такой простой коде:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
		Session session = HibernateUtil.currentSession();

		Transaction tx = session.beginTransaction();
		Vep tst =  new  Vep();
		tst.setKey( "AAA");
		tst.setValue( "BBB");
		session.save( tst);
		tx.commit();

		tx = session.beginTransaction();
		Vep tst1 =  new  Vep();
		tst1.setKey( "ССС");
		tst1.setValue( "ВВВ");
		session.save( tst1);
		tx.commit();

		HibernateUtil.closeSession();
И в результате имем, что объект tst1 сохранился, а tst нет. Чо там beginTransaction сделала - непонятно (наверно rollback() =)), а вот commit всяк там SQL конечно выполнил, но закоммитить то забыл. Может и надуманая ситуация, но однако.

Воше, для меня, как для чела от DB как-то так немного дико выглядит, что save() ничего в базу не кладет, а тольки SQL коллекционирует, а commit() начинает в базу класть, но не коммитит, сим тольки closeSession() занимается. Не, логику, можно таку навернуть, я не против, тольки зачем функции так обзывать, чтоб народ путать. Или, считается, что народу про DB воше знать ничего не положено.

Кстати, коде
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
		Session session = HibernateUtil.currentSession();

		Transaction tx = session.beginTransaction();
		Vep tst =  new  Vep();
		tst.setKey( "AAA");
		tst.setValue( "BBB");
		session.save( tst);
		tx.commit();

		Transaction tx1 = session.beginTransaction();
		Vep tst1 =  new  Vep();
		tst1.setKey( "ССС");
		tst1.setValue( "ВВВ");
		session.save( tst1);
		tx1.commit();

		HibernateUtil.closeSession();

работает нормально... Что тоже выглядет несколько странно.
...
Рейтинг: 0 / 0
13.05.2005, 09:59
    #33061377
_Гость_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тетерициские вопросики по Hibernate
Тут ничего странного нет.
А представь ты делаешь в цикле 1000 session.save. И к примеру на 999 итерации все валится. Поскольку реально данные еще не закоммичены и их физически нет в БД, то откат такой транзакции происходит моментально, да и траффик+нагрузка на БД заметно ниже...

Кстати, даже непосредственно в БД в рамках sql-транзакции вставки, например, РЕАЛЬНО появятся в базе только после коммита.
...
Рейтинг: 0 / 0
13.05.2005, 10:49
    #33061535
maddcast
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тетерициские вопросики по Hibernate
Панику устроил на пустом месте.
...
Рейтинг: 0 / 0
13.05.2005, 11:03
    #33061583
funikovyuri
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тетерициские вопросики по Hibernate
http://www.hibernate.org/hib_docs/v3/reference/en/html/objectstate.html#objectstate-flushing

авторFrom time to time the Session will execute the SQL statements needed to synchronize the JDBC connection's state with the state of objects held in memory. This process, flush, occurs by default at the following points

before some query executions

from org.hibernate.Transaction.commit()

from Session.flush()
...
Рейтинг: 0 / 0
13.05.2005, 18:41
    #33063291
andrushok
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тетерициские вопросики по Hibernate
Паника тут не причем. Просто функции надо было называть по другому. А то путаницу наводят однако.

_Кость_ Кстати, даже непосредственно в БД в рамках sql-транзакции вставки, например, РЕАЛЬНО появятся в базе только после коммита.

В зтом Вы батенька не правы, однако. Я могу и всяки selectы в рамках той-же транзакции делать. И сии selectы должны показывать, то, что я имею на данный момент, хотя это еще и не закомиченно. Для меня данные изменения уже должны РЕАЛЬНО быть в базе.

Я уже привел пример выще, к чему это может привести. Я не спорю и еще раз повторю, я от базы сюды пришел. И такое наименование вызывает совсем другие ассоциации. Конечно, для чела, от базы далекого все по барабану - как-нить допетрит. Ну так зачем же других за идиотов держать? Кончено, соптимизировать хотели, а вышло, как всегда.

Тоесть, создается впечатление, что если идет достаточно сурьезная работа с базой. Я имею ввиду контент базы постоянно меняется, а не просто идет просмотр через selectы.
...
Рейтинг: 0 / 0
13.05.2005, 20:45
    #33063466
funikovyuri
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тетерициские вопросики по Hibernate
авторИ в результате имем, что объект tst1 сохранился, а tst нет. Чо там beginTransaction сделала - непонятно (наверно rollback() =)), а вот commit всяк там SQL конечно выполнил, но закоммитить то забыл. Может и надуманая ситуация, но однако.

Это неправда - как я уже писал commit() приводит к выполнению flush() для связанной сессии. Так что оба объекта должны быть записаны в БД.
...
Рейтинг: 0 / 0
13.05.2005, 21:24
    #33063484
andrushok
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тетерициские вопросики по Hibernate
Может и неправда, тольки факт. Да, сommit() вызывает flush() и соответсвенно выполняет соответсвенные SQL. И объект tst1 действительно кладется в базу. Но не коммитится! А следующая функция beginTransaction откатывает базу назад, вот tst1 и пропал! Как она это там делает, я не разбирался - скорее всего надо где-то еще и autocommit в true поставить. Тады сей коде работать будет, наверно.
...
Рейтинг: 0 / 0
14.05.2005, 10:51
    #33064064
funikovyuri
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тетерициские вопросики по Hibernate
andrushok

Дело в том что этот код и так будет работать... и транзакция, которая уже закомичена такой и останется. Проверьте ваш пример и если все так и останется как вы утверждаете - сообщите полную конфигурацию все системы (версия Oracle'а, jvm, hibernate, jdbc драйвера, код создания SessionFactory)
...
Рейтинг: 0 / 0
15.05.2005, 07:06
    #33065680
andrushok
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тетерициские вопросики по Hibernate
Так, по порядку
Hibernate 3.0 (скачан недели 3 назад)
jvm 1.5 (точно не помню, тоже 3 недели назад скачал)
Оракл 9.2.0.4 (драйвы classes12 и ojdbc14 с него)
Ось - федорино горе 3.
Но это не совсем важно, я думаю.

Да, SessionFactory взял из примера про котов, как и все остальное тоже...
...
Рейтинг: 0 / 0
16.05.2005, 10:39
    #33066425
funikovyuri
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тетерициские вопросики по Hibernate
я прикрепил пример. запустите его у себя и расскажите о результате

у меня в консоль попадает следующее (hibernate 3.0.2)

Код: 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.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
 16 . 05 . 2005   10 : 28 : 14  org.hibernate.cfg.Environment <clinit>
INFO: Hibernate  3 . 0 . 2 
 16 . 05 . 2005   10 : 28 : 14  org.hibernate.cfg.Environment <clinit>
INFO: hibernate.properties not found
 16 . 05 . 2005   10 : 28 : 14  org.hibernate.cfg.Environment <clinit>
INFO: using CGLIB reflection optimizer
 16 . 05 . 2005   10 : 28 : 14  org.hibernate.cfg.Environment <clinit>
INFO: using JDK  1 . 4  java.sql.Timestamp handling
 16 . 05 . 2005   10 : 28 : 15  org.hibernate.cfg.Configuration configure
INFO: configuring from resource: /hibernate.cfg.xml
 16 . 05 . 2005   10 : 28 : 15  org.hibernate.cfg.Configuration getConfigurationInputStream
INFO: Configuration resource: /hibernate.cfg.xml
 16 . 05 . 2005   10 : 28 : 15  org.hibernate.cfg.Configuration addResource
INFO: Mapping resource: hibernate.hbm.xml
 16 . 05 . 2005   10 : 28 : 15  org.hibernate.cfg.HbmBinder bindRootPersistentClassCommonValues
INFO: Mapping  class : myown.hibernate3.tests.Cat -> funikov#cat
 16 . 05 . 2005   10 : 28 : 15  org.hibernate.cfg.Configuration doConfigure
INFO: Configured SessionFactory: testOraSessionFactory
 16 . 05 . 2005   10 : 28 : 15  org.hibernate.cfg.Configuration secondPassCompile
INFO: processing  extends  queue
 16 . 05 . 2005   10 : 28 : 15  org.hibernate.cfg.Configuration secondPassCompile
INFO: processing collection mappings
 16 . 05 . 2005   10 : 28 : 15  org.hibernate.cfg.Configuration secondPassCompile
INFO: processing association property references
 16 . 05 . 2005   10 : 28 : 15  org.hibernate.cfg.Configuration secondPassCompile
INFO: processing foreign key constraints
 16 . 05 . 2005   10 : 28 : 15  org.hibernate.connection.DriverManagerConnectionProvider configure
INFO: Using Hibernate built-in connection pool (not  for  production use!)
 16 . 05 . 2005   10 : 28 : 15  org.hibernate.connection.DriverManagerConnectionProvider configure
INFO: Hibernate connection pool size:  20 
 16 . 05 . 2005   10 : 28 : 15  org.hibernate.connection.DriverManagerConnectionProvider configure
INFO: autocommit mode: false
 16 . 05 . 2005   10 : 28 : 15  org.hibernate.connection.DriverManagerConnectionProvider configure
INFO: using driver: oracle.jdbc.driver.OracleDriver at URL: jdbc:oracle:thin:@*.*.*.*: 1521 :TST11
 16 . 05 . 2005   10 : 28 : 15  org.hibernate.connection.DriverManagerConnectionProvider configure
 16 . 05 . 2005   10 : 28 : 15  org.hibernate.cfg.SettingsFactory buildSettings
INFO: RDBMS: Oracle, version: Oracle9i Enterprise Edition Release  9 . 2 . 0 . 3 . 0  - Production
With the Partitioning, Real Application Clusters, OLAP and Oracle Data Mining options
JServer Release  9 . 2 . 0 . 3 . 0  - Production
 16 . 05 . 2005   10 : 28 : 15  org.hibernate.cfg.SettingsFactory buildSettings
INFO: JDBC driver: Oracle JDBC driver, version:  9 . 0 . 1 . 3 . 0 
 16 . 05 . 2005   10 : 28 : 15  org.hibernate.dialect.Dialect <init>
INFO: Using dialect: org.hibernate.dialect.Oracle9Dialect
 16 . 05 . 2005   10 : 28 : 15  org.hibernate.cfg.SettingsFactory buildSettings
INFO: JDBC batch size:  15 
 16 . 05 . 2005   10 : 28 : 15  org.hibernate.cfg.SettingsFactory buildSettings
INFO: JDBC batch updates  for  versioned data: disabled
 16 . 05 . 2005   10 : 28 : 15  org.hibernate.cfg.SettingsFactory buildSettings
INFO: Scrollable result sets: enabled
 16 . 05 . 2005   10 : 28 : 15  org.hibernate.cfg.SettingsFactory buildSettings
INFO: JDBC3 getGeneratedKeys(): disabled
 16 . 05 . 2005   10 : 28 : 15  org.hibernate.cfg.SettingsFactory buildSettings
INFO: Aggressive release : disabled
 16 . 05 . 2005   10 : 28 : 15  org.hibernate.cfg.SettingsFactory buildSettings
INFO:  Default  batch fetch size:  1 
 16 . 05 . 2005   10 : 28 : 15  org.hibernate.cfg.SettingsFactory buildSettings
INFO: Generate SQL with comments: disabled
 16 . 05 . 2005   10 : 28 : 15  org.hibernate.cfg.SettingsFactory buildSettings
INFO: Order SQL updates by primary key: disabled
 16 . 05 . 2005   10 : 28 : 15  org.hibernate.cfg.SettingsFactory createQueryTranslatorFactory
INFO: Query translator: org.hibernate.hql.ast.ASTQueryTranslatorFactory
 16 . 05 . 2005   10 : 28 : 15  org.hibernate.hql.ast.ASTQueryTranslatorFactory <init>
INFO: Using ASTQueryTranslatorFactory
 16 . 05 . 2005   10 : 28 : 15  org.hibernate.cfg.SettingsFactory buildSettings
INFO: Query language substitutions: {}
 16 . 05 . 2005   10 : 28 : 15  org.hibernate.transaction.TransactionFactoryFactory buildTransactionFactory
INFO: Using  default  transaction strategy (direct JDBC transactions)
 16 . 05 . 2005   10 : 28 : 15  org.hibernate.transaction.TransactionManagerLookupFactory getTransactionManagerLookup
INFO: No TransactionManagerLookup configured (in JTA environment, use of read-write or transactional second-level cache is not recommended)
 16 . 05 . 2005   10 : 28 : 15  org.hibernate.cfg.SettingsFactory buildSettings
INFO: Automatic flush during beforeCompletion(): disabled
 16 . 05 . 2005   10 : 28 : 15  org.hibernate.cfg.SettingsFactory buildSettings
INFO: Automatic session close at end of transaction: disabled
 16 . 05 . 2005   10 : 28 : 15  org.hibernate.cfg.SettingsFactory buildSettings
INFO: Second-level cache: enabled
 16 . 05 . 2005   10 : 28 : 15  org.hibernate.cfg.SettingsFactory buildSettings
INFO: Query cache: disabled
 16 . 05 . 2005   10 : 28 : 15  org.hibernate.cfg.SettingsFactory createCacheProvider
INFO: Cache provider: org.hibernate.cache.EhCacheProvider
 16 . 05 . 2005   10 : 28 : 15  org.hibernate.cfg.SettingsFactory buildSettings
INFO: Optimize cache  for  minimal puts: disabled
 16 . 05 . 2005   10 : 28 : 15  org.hibernate.cfg.SettingsFactory buildSettings
INFO: Structured second-level cache entries: enabled
 16 . 05 . 2005   10 : 28 : 15  org.hibernate.cfg.SettingsFactory buildSettings
INFO: Statistics: disabled
 16 . 05 . 2005   10 : 28 : 15  org.hibernate.cfg.SettingsFactory buildSettings
INFO: Deleted entity synthetic identifier rollback: disabled
 16 . 05 . 2005   10 : 28 : 15  org.hibernate.cfg.SettingsFactory buildSettings
INFO:  Default  entity-mode: pojo
 16 . 05 . 2005   10 : 28 : 16  org.hibernate.impl.SessionFactoryImpl <init>
INFO: building session factory
 16 . 05 . 2005   10 : 28 : 16  net.sf.ehcache.config.Configurator configure
WARNING: No configuration found. Configuring ehcache from ehcache-failsafe.xml found in the classpath: jar:file:/C:/projects/other/hib_test/lib/ehcache- 1 . 1 .jar!/ehcache-failsafe.xml
 16 . 05 . 2005   10 : 28 : 16  org.hibernate.impl.SessionFactoryObjectFactory addInstance
INFO: Factory name: testOraSessionFactory
 16 . 05 . 2005   10 : 28 : 16  org.hibernate.util.NamingHelper getInitialContext
INFO: JNDI InitialContext properties:{}
 16 . 05 . 2005   10 : 28 : 16  org.hibernate.impl.SessionFactoryObjectFactory addInstance

...

[CLEAN]
[SAVE]
[SELECT]
================
 3 
Vasy
 2 . 7 
================
 1 
Alice
 1 . 7 
================
 2 
Murzik
 2 . 5 
...

PS> все таки если у вас что-то с первого раза не получается - это еще не повод говорить везде что hibernate не серьезный продукт, который "отучает" людей от базы...
...
Рейтинг: 0 / 0
16.05.2005, 10:39
    #33066427
funikovyuri
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тетерициские вопросики по Hibernate
вот сам пример
...
Рейтинг: 0 / 0
01.06.2005, 15:39
    #33095243
_Гость_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тетерициские вопросики по Hibernate
Подскажите плиз в чем ошибка
Имею маппинг:
Код: 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.
<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE hibernate-mapping  PUBLIC  "-//Hibernate/Hibernate Mapping DTD 2.0//EN"
                         "http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd">

<hibernate-mapping>
	< class  name="model.Parent" table="Parent">
		<id name="id" type="java.math.BigDecimal" column="ID">
			<generator  class ="native"/>
		</id>
		<property name="name" column="Name" type="java.lang.String"/>
		<set name="childs"
             lazy="true"
             cascade="all">
        <key column="parentID" />
        <one-to-many  class ="model.Child"/>
       </set>
	</ class >

	< class  name="model.Child" table="Child" >
		<id name="id" type="java.math.BigDecimal" column="ID">
			<generator  class ="native"/>
		</id>
		<property name="name" column="Name" type="java.lang.String"/>
		<many-to-one name="parent" column="parentID"  class ="model.Parent" />
	</ class >
</hibernate-mapping>

и код, где пытаюсь вытянуь все родительские записи и соответствующии им дочерние:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
           List parents = session.createQuery("select p from Parent as p left join p.childs as c").list();
                for  (Iterator iter = parents.iterator(); iter.hasNext(); ) {
                 Parent parent = (Parent) iter.next();
                 System.out.println("Parent: " + parent.getName() );
                 for  (Iterator it1 = parent.getChilds().iterator(); it1.hasNext();) {
                    Child child = (Child) it1.next();
                    System.out.println("Child: " + child.getName() );
                }
            }
            tx.commit();
         }  catch  (Exception ce) {
            tx.rollback();
            System.out.println( ce );
         }

В результате вылетает exception:
Parent: Parent 1
net.sf.hibernate.LazyInitializationException: Failed to lazily initialize a collection
...
Рейтинг: 0 / 0
01.06.2005, 16:38
    #33095485
funikovyuri
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тетерициские вопросики по Hibernate
Судя по всему обращение к parent.getChilds() происходит после закрытия сессии в которой parent был загружен. Вот ссылка на документацию, где описывается подобная ситуация
http://www.hibernate.org/hib_docs/v3/reference/en/html/performance.html#performance-fetching-lazy

ЗЫ а в чем смысл такого запроса (select p from Parent as p left join p.childs as c)?
...
Рейтинг: 0 / 0
02.06.2005, 10:15
    #33096539
_Гость_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тетерициские вопросики по Hibernate
Cори за запрос - старый вариант. правильный - session.find("from Parent as p")
Но и с ним не работало, а проблема решилась, когда в классах Parent и Child удалил методы equals и hashCode, которые сгененрились IDEA.
Хотя в доках hibernate написано, что эти методы обязательно нужно переопределить
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Тетерициские вопросики по Hibernate / 20 сообщений из 20, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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