csab79 [
http://community.jboss.org/people/csab79] created the discussion
"Embedded Many-to-one performance issue"
To view the discussion, visit:
http://community.jboss.org/message/585635#585635
--------------------------------------------------------------
Hi hibernate gurus!
I have experienced the following issue:
I have a class with some properties and 5 many-to-one relationship.
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD
3.0//EN"
"
http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd
http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="hibernate.classes.Fszerzfej" table="FSZERZFEJ"
catalog="dev1">
<id name="ffId" type="int">
<column name="FF_ID" />
<generator class="identity"/>
</id>
<property name="ffSzerzszam" type="string">
<column name="FF_SZERZSZAM" />
</property>
<property name="ffUgyfelkod" type="string">
<column name="FF_UGYFELKOD" />
</property>
<property name="ffUgyfelnev" type="string">
<column name="FF_UGYFELNEV" />
</property>
<property name="ffStIdRegio" type="int">
<column name="ST_ID_REGIO" />
</property>
<property name="ffSzerztipus" type="int">
<column name="FF_SZERZTIPUS" />
</property>
...
...
...
<many-to-one name="regio"
class="hibernate.classes.Choicerows" fetch="join"
insert="false" update="false">
<column name="ST_ID_REGIO" not-null="true"
/>
</many-to-one>
<many-to-one name="sterulet"
class="hibernate.classes.Sterulet" fetch="join"
insert="false" update="false">
<column name="ST_ID_TELEPULES"
not-null="true"/>
</many-to-one>
<many-to-one name="szerzst"
class="hibernate.classes.Choicerows" fetch="join"
insert="false" update="false" >
<column name="FF_SZERZST" not-null="true"
/>
</many-to-one>
<many-to-one name="ufkodtipus"
class="hibernate.classes.Choicerows" fetch="join"
insert="false" update="false" >
<column name="FF_UFKODTIPUS" not-null="true"
/>
</many-to-one>
<many-to-one name="szerztip"
class="hibernate.classes.Choicerows" fetch="join"
insert="false" update="false">
<column name="FF_SZERZTIPUS" not-null="true"
/>
</many-to-one>
</class>
</hibernate-mapping>
My another class is using fszerzfej class also with many-to-one ralationship:
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD
3.0//EN"
"
http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd
http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="hibernate.classes.Fszerzpont" table="FSZERZPONT"
catalog="dev1">
<id name="fpId" type="int" >
<column name="FP_ID" />
<generator class="identity" />
</id>
<property name="fpFfId" type="int">
<column name="FP_FF_ID" />
</property>
<property name="fpPontnev" type="string">
<column name="FP_PONTNEV" />
</property>
<property name="fpStRegio" type="int">
<column name="FP_ST_REGIO" />
</property>
<property name="fpStTelepules" type="int">
<column name="FP_ST_TELEPULES" />
</property>
<property name="fpIranyitoszam" type="string">
<column name="FP_IRANYITOSZAM" />
</property>
...
...
<many-to-one name="regio"
class="hibernate.classes.Choicerows" fetch="join"
insert="false" update="false" >
<column name="FP_ST_REGIO" not-null="true"
/>
</many-to-one>
<many-to-one name="sterulet"
class="hibernate.classes.Sterulet" fetch="join"
insert="false" update="false" >
<column name="FP_ST_TELEPULES"
not-null="true" />
</many-to-one>
<many-to-one name="szerzodesAllapot"
class="hibernate.classes.Choicerows" fetch="join"
insert="false" update="false">
<column name="FP_SZERZST" not-null="true"
/>
</many-to-one>
<many-to-one name="tipus"
class="hibernate.classes.GyujtopontTipusok" fetch="join"
insert="false" update="false">
<column name="gyujtopont_tipus_id"
not-null="true" />
</many-to-one>
<many-to-one name="szerzodes"
class="hibernate.classes.Fszerzfej" fetch="join"
insert="false" update="false" >
<column name="FP_FF_ID"/>
</many-to-one>
</class>
</hibernate-mapping>
The impact is occuring when i am using fszerzpont class the fszerzfej many-to-one
relationships fetching mode will be lazy=false.
I dont understand this bahaviour, i am not using getters exampl from fszerzfej.regio,
fszerzfej.sterulet, fszerzfej.szerzst, fszerzfej.ufkodtipus, fszerzfej.szerztip
I am using this relations only from fszerzfej, not from fszerzpont.
I assume lazy fetching should doing this but i am surprised why not :S
How could i tell Hibernate do not use load thoose many-to-one- relations into memory?
My other question is about lazy group fetching. I have read many article but i cant achive
to work properly.
Bulidtime ant instrumentation does not work for me :S
I appreciate any help!
best regards!
Csaba
--------------------------------------------------------------
Reply to this message by going to Community
[
http://community.jboss.org/message/585635#585635]
Start a new discussion in EJB3 at Community
[
http://community.jboss.org/choose-container!input.jspa?contentType=1&...]