Правильно присоединяясь в Hibernate - PullRequest
0 голосов
/ 11 августа 2011

У меня есть следующая проблема с Hibernate: У меня есть два класса:

1) Справоздание

   <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
                                   "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
 <class name="com.mg.shared.Sprawozdanie" table="sprawozdania">
  <id column="spr_id" name="id" type="int">
    <generator class="increment"/>
  </id>
  <property column="spr_od" generated="never" lazy="false" name="Od" type="date"/>
  <property column="spr_do" generated="never" lazy="false" name="Do" type="date"/>
  <property column="spr_typ_okresu" generated="never" lazy="false"
   name="TypOkresu" type="string"/>
  <property column="spr_kurs" generated="never" lazy="false" name="Kurs" type="float"/>
  <property column="spr_dsp_nazwa" generated="never" lazy="false"
   name="NazwaDysponenta" type="string"/>
  <property column="spr_dsp_adres" generated="never" lazy="false"
   name="AdresDysponenta" type="string"/>
  <property column="spr_dsp_regon" generated="never" lazy="false"
   name="RegonDysponenta" type="string"/>
  <property column="spr_dsp_wojew_kod" generated="never" lazy="false"
   name="KodWojDysponenta" type="string"/>
  <property column="spr_dsp_wojew_nazwa" generated="never" lazy="false"
   name="NazwaWojDysponenta" type="string"/>
  <property column="spr_dsp_powiat_kod" generated="never" lazy="false"
   name="KodPowiatDysponenta" type="string"/>
  <property column="spr_dsp_powiat_nazwa" generated="never" lazy="false"
   name="NazwaPowiatDysponenta" type="string"/>
  <property column="spr_dsp_gmina_kod" generated="never" lazy="false"
   name="KodGminaDysponenta" type="string"/>
  <property column="spr_dsp_gmina_nazwa" generated="never" lazy="false"
   name="NazwaGminaDysponenta" type="string"/>
  <property column="spr_dsp_typ_gminy_kod" generated="never"
   lazy="false" name="KodTypGmDysponenta" type="string"/>
  <property column="spr_dsp_typ_gminy_nazwa" generated="never"
   lazy="false" name="NazwaTypGmDysponenta" type="string"/>
  <property column="spr_dsp_zwiazek_jst_kod" generated="never"
   lazy="false" name="KodZwJTSDysponenta" type="string"/>
  <property column="spr_dsp_typ_zwt_kod" generated="never" lazy="false"
   name="KodTypZwDysponenta" type="string"/>
  <property column="spr_dsp_instytucja_nadrzedna" generated="never"
   lazy="false" name="InstytucjaNadrzednaDysponenta" type="string"/>
  <property column="spr_dsp_nazwa_waluty" generated="never" lazy="false"
   name="NazwaWalutyDysponenta" type="string"/>
  <property column="spr_dsp_symbol_waluty" generated="never"
   lazy="false" name="SymbolWalutyDysponenta" type="string"/>
  <property column="spr_stan" generated="never" lazy="false" name="Stan" type="string"/>
  <property column="spr_data_utworzenia" generated="never" lazy="false"
   name="DataUtworyenia" type="date"/>
  <property column="spr_data_zaakceptowania" generated="never"
   lazy="false" name="DataYaakceptowania" type="date"/>
  <property column="spr_data_zatwierdzenia" generated="never"
   lazy="false" name="DataYatwierdyenia" type="date"/>
  <property column="spr_data_odrzucenia" generated="never" lazy="false"
   name="DataOdryucenia" type="date"/>
   <property column="spr_data_edycji" generated="never" lazy="false"
   name="DataEdycji" type="date"/>
  <many-to-one class="com.mg.spr.shared.User" column="spr_uz_login"
   lazy="false" name="Uzytkownik" update="false"/>
  <many-to-one class="com.mg.spr.shared.Officer" column="spr_dsp_id"
   lazy="false" name="Dysponent" update="false"/>
  <many-to-one class="com.mg.spr.shared.TypSprawozdania" column="spr_typ_spr_nazwa"
   lazy="false" name="TypSpr" update="false"/>
  <set name="PozycjeSprawozdania" table="pozycje_sprawozdan" cascade="all" lazy="false" >
   <key column="pspr_spr_id"  not-null="true" update="true"/>
   <one-to-many class="com.mg.shared.PozycjaSprawozdania" />
   </set>
 </class>
</hibernate-mapping>

2) PozycjaSprawozdania

    <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
                                   "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping> 
 <class name="com.mg.shared.PozycjaSprawozdania" table="pozycje_sprawozdan">
  <id column="pspr_id" name="id" type="int">
    <generator class="increment"/>
  </id>
  <property column="pspr_nr_tabeli" generated="never" lazy="false" name="NrTabeli" type="int"/>
  <property column="pspr_nr_wiersza" generated="never" lazy="false" name="NrWiersza" type="int"/>
  <property column="pspr_dzi_kod" generated="never" lazy="false"
   name="DzialKod" type="string"/>
  <property column="pspr_roz_kod" generated="never" lazy="false"
   name="RozdzialKod" type="string"/>
  <property column="pspr_par_kod" generated="never" lazy="false"
   name="ParagrafKod" type="string"/>
  <property column="pspr_par_typ" generated="never" lazy="false"
   name="ParagrafTyp" type="string"/>
  <property column="pspr_zad_kod" generated="never" lazy="false"
   name="ZadanieKod" type="string"/>
  <property column="pspr_zfin_kod" generated="never" lazy="false"
   name="ZrodloFinansowaniaKod" type="string"/>
  <property column="pspr_dzi_nazwa" generated="never" lazy="false"
   name="DzialNazwa" type="string"/>
  <property column="pspr_roz_nazwa" generated="never" lazy="false"
   name="RozdzialNazwa" type="string"/>
  <property column="pspr_par_nazwa" generated="never" lazy="false"
   name="ParagrafNazwa" type="string"/>
  <property column="pspr_zad_nazwa" generated="never" lazy="false"
   name="ZadanieNazwa" type="string"/>
  <property column="pspr_zfin_nazwa" generated="never" lazy="false"
   name="ZrodloFinansowaniaNazwa" type="string"/>
  <property column="pspr_kolumna_01" generated="never" lazy="false"
   name="Kolumna01" type="string"/>
  <property column="pspr_kolumna_02" generated="never" lazy="false"
   name="Kolumna02" type="string"/>
  <property column="pspr_kolumna_03" generated="never" lazy="false"
   name="Kolumna03" type="string"/>
  <property column="pspr_kolumna_04" generated="never" lazy="false"
   name="Kolumna04" type="string"/>
  <property column="pspr_kolumna_05" generated="never" lazy="false"
   name="Kolumna05" type="string"/>
  <property column="pspr_kolumna_06" generated="never" lazy="false"
   name="Kolumna06" type="string"/>
  <property column="pspr_kolumna_07" generated="never" lazy="false"
   name="Kolumna07" type="string"/>
  <property column="pspr_kolumna_08" generated="never" lazy="false"
   name="Kolumna08" type="string"/>
  <property column="pspr_kolumna_09" generated="never" lazy="false"
   name="Kolumna09" type="string"/>
  <property column="pspr_kolumna_10" generated="never" lazy="false"
   name="Kolumna10" type="string"/>
  <property column="pspr_kolumna_11" generated="never" lazy="false"
   name="Kolumna11" type="string"/>
  <property column="pspr_kolumna_12" generated="never" lazy="false"
   name="Kolumna12" type="string"/>
  <property column="pspr_kolumna_13" generated="never" lazy="false"
   name="Kolumna13" type="string"/>
  <property column="pspr_kolumna_14" generated="never" lazy="false"
   name="Kolumna14" type="string"/>
  <property column="pspr_kolumna_15" generated="never" lazy="false"
   name="Kolumna15" type="string"/>
  <property column="pspr_kolumna_16" generated="never" lazy="false"
   name="Kolumna16" type="string"/>
  <property column="pspr_kolumna_17" generated="never" lazy="false"
   name="Kolumna17" type="string"/>
  <property column="pspr_kolumna_18" generated="never" lazy="false"
   name="Kolumna18" type="string"/>
  <property column="pspr_kolumna_19" generated="never" lazy="false"
   name="Kolumna19" type="string"/>
  <property column="pspr_kolumna_20" generated="never" lazy="false"
   name="Kolumna20" type="string"/>
  <property column="pspr_kolumna_21" generated="never" lazy="false"
   name="Kolumna21" type="string"/>
  <property column="pspr_kolumna_22" generated="never" lazy="false"
   name="Kolumna22" type="string"/>
  <property column="pspr_kolumna_23" generated="never" lazy="false"
   name="Kolumna23" type="string"/>
  <property column="pspr_kolumna_24" generated="never" lazy="false"
   name="Kolumna24" type="string"/>
  <property column="pspr_kolumna_25" generated="never" lazy="false"
   name="Kolumna25" type="string"/>
  <property column="pspr_kolumna_26" generated="never" lazy="false"
   name="Kolumna26" type="string"/>
  <property column="pspr_kolumna_27" generated="never" lazy="false"
   name="Kolumna27" type="string"/>
  <property column="pspr_kolumna_28" generated="never" lazy="false"
   name="Kolumna28" type="string"/>
  <property column="pspr_kolumna_29" generated="never" lazy="false"
   name="Kolumna29" type="string"/>
  <property column="pspr_kolumna_30" generated="never" lazy="false"
   name="Kolumna30" type="string"/>

  <many-to-one class="com.mg.shared.Sprawozdanie" column="pspr_spr_id"
   lazy="false" name="Sprawozdanie" update="false" insert="false"/>

 </class>
</hibernate-mapping>

Я использую Jasperreports для генерации отчетов. Некоторые данные находятся в Sprawozdanie, а некоторые находятся в PozycjaSprawozdania. Когда я использую этот запрос:

listOfData = session.createQuery("Select spr from Sprawozdanie spr left join fetch spr.PozycjeSprawozdania").list();

Я получаю эту ошибку:

51142 [btpool0-2] ERROR org.hibernate.LazyInitializationException - failed to lazily initialize a collection, no session or session was closed

1 Ответ

0 голосов
/ 11 августа 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...