[jboss-user] [EJB3] - Embedded Many-to-one performance issue
csab79
do-not-reply at jboss.com
Fri Feb 4 16:15:51 EST 2011
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&containerType=14&container=2029]
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/jboss-user/attachments/20110204/7ccabf39/attachment-0001.html
More information about the jboss-user
mailing list