powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / many-to-many в Hibernate
4 сообщений из 4, страница 1 из 1
many-to-many в Hibernate
    #33736842
3181Kirill
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
остановился на 2-ом примере из книги HIBERNATE - Relational Persistence for Idiomatic Java (hibernate.org),а
именно на выводе коллекции при создании связи many-to-many между таблица events и person.

маппинг person

<hibernate-mapping>
<class name="test.com.Person" table="person">
<id name="id" column="id" type="java.lang.Long">
<generator class="native"/>
</id>

<property name="firstname"/>

<property name="lastname"/>

<property name="age">
<column name="age" sql-type="integer" not-null="true"/>
</property>

<set name="events" table="person_event">
<key column="id"/>
<many-to-many column="event_id" class="test.com.Event" outer-join="true" />
</set>

</class>
</hibernate-mapping>


маппинг events
<hibernate-mapping>
<class name="test.com.Event" table="events">
<id name="event_id" column="id" type="java.lang.Long">
<generator class="native"/>
</id>

<property name="title"/>

</class>
</hibernate-mapping>

создаю link table
create table person_event (id bigint not null references person(id) , event_id bigint not null
references events(event_id));

у меня заполненная таблица events и person
в экшне я добавляю событие к персоне

Person aPerson = (Person)sess.load(test.com.Person.class,new Long(9));
Event aEvent = (Event)sess.load(test.com.Event.class,new Long(1));
aPerson.getEvents().add(aEvent);

все великолепно добавляется. А когда пытаюсь вывести на страницу jsp для каждого person поле title из events, то
у меня появляется ексепшн
javax.servlet.ServletException: javax.servlet.jsp.JspException: org.hibernate.LazyInitializationException:
failed to lazily initialize a collection of role: test.com.Person.events, no session or session was closed

попробовал поставить lazy="false"
<set name="events" table="person_event" lazy="false">
<key column="id"/>
<many-to-many column="event_id" class="test.com.Event" outer-join="true" />
</set>

то все равно появляется ексепшн
javax.servlet.ServletException: javax.servlet.jsp.JspException: Error getting property 'title'
from bean of type org.hibernate.collection.PersistentSet

может как-нибудь еще нужно инциализировать коллекцию.Помогите разобраться со сложившейся проблемой.
Взаранее благодарен.
...
Рейтинг: 0 / 0
many-to-many в Hibernate
    #33736961
Jozic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Судя по всему берете проперти не у того бина, нужно у ивента, а берете у коллекции (в которой скорее всего лежат ивенты). Хибернейт тут не причем.
...
Рейтинг: 0 / 0
many-to-many в Hibernate
    #33738066
3181Kirill
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
беру я след. образом, использую jsf dataTable

<h:dataTable value="#{resultbean.all}" var="el">
<h:column>
<h:outputText value="#{el.firstname}" />
<f:verbatim>,</f:verbatim>
</h:column>

<h:column>
<h:outputText value="#{el.lastname}" />
</h:column>

<h:column>
<h:dataTable value="#{el.events}" var="event">
<h:column>
<h:outputText value="#{event.title}" />
</h:column>
</h:dataTable>
</h:column>

</h:dataTable>
если убрать
последний h:column
то работает все нормально.Но у меня в каждом объетк класса Person содержится коллекция events c атрибутами title и event_id.Судя по всему у меня пустая коллекция у каждого person.Может как-нибудь еще нужно ее заполнять?
...
Рейтинг: 0 / 0
many-to-many в Hibernate
    #33738749
funikovyuri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в общем очень советую придерживаться такого правила - за пределы DAO&Bussiness Facade должны выходить только полность загруженные объекты. Весь lazy если он есть, должен заканчиваться до закрытия hibernate session
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / many-to-many в Hibernate
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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