I forgot to mention: all this doesn't solve my problem
at all. because of the maxFetchDepth set to 1, and the
outer-join's being set to auto, I now have 7 SQL
queries generated instead of... who knows. This is for
2 entities, thus in my case the n+1 problem is
actually a (n*3)+1 problem...

don't you guys have a clue?

Again: the "lazy" attribute simply isn't there where
it should!

Summary:

- I have set maxFetchDepth, which works
- According to carlos the proxies are now set
- relationships are ok

... but where's the "lazy" attribute? Can you confirm
that the right tag is @andromda.hibernate.lazy=true?

I've checked in the hbm's: all the lazy="true"
attributes are on <set> tags, never on <many-to-one>
or anything else...

bernard

--- Carlos Cuenca <[EMAIL PROTECTED]> wrote:

> 
> Cache is enabled on each hbm mapping of each entity.
> 
> Carlos
> 
> Bernard Sirius wrote:
> 
> >OK, the classnotFoundErrors apparently came from
> the
> >fact that suddenly the datasource is configured in
> a
> >separate xml applicationContext-datasource.xml. I
> had
> >to copy/paste the datasource fragment to make it
> work
> >again.
> >
> >Here's what I have put in mda's project.xml:
> >
> ><hibernateProxy>true</hibernateProxy>
> ><hibernateMaxFetchDepth>1</hibernateMaxFetchDepth>
> >
> >that generates the following regarding hibernate in
> >applicationContext.xml:
> >
> >        <property name="hibernateProperties">
> >            <props>
> >                <prop
> >key="hibernate.show_sql">true</prop>
> >                <prop
>
>key="hibernate.dialect">net.sf.hibernate.dialect.MySQLDialect</prop>
> >                <prop
> >key="hibernate.max_fetch_depth">1</prop>
> >                <prop
> >key="hibernate.cache.use_query_cache">false</prop>
> >                <prop
>
>key="hibernate.cache.provider_class">net.sf.hibernate.cache.EhCacheProvider</prop>
> >                <prop
>
>key="hibernate.cache.query_cache_factory">net.sf.hibernate.cache.StandardQueryCacheFactory</prop>
> >            </props>
> >        </property>
> >
> >which shows that the max_fetch_depth is working,
> but I
> >have no clue wether the proxies are now enabled.
> >
> >(I am a bit nervous: I have a very important demo
> >tonight; everything works, but because of this
> >"cascading query" problem, everything is now
> >unacceptably slow...)
> >
> >bernard
> >  
> >
> >>This is very strange, since I am using them in all
> >>my proyects and it 
> >>works perfectly. Which Andromda version are you
> >>using?
> >>
> >>Carlos
> >>Bernard Sirius wrote:
> >>
> >>    
> >>
> >>>Hi Carlos,
> >>>
> >>>I followed your advice, but now that proxies are
> >>>enabled I get a very strange
> NoClassDefFoundError,
> >>>without a stack trace:
> >>>
> >>>
> >>>BUILD FAILED
> >>>File...... C:\Documents and
> >>>      
> >>>
>
>>Settings\Candide\.maven\cache\maven-test-plugin-1.6.
> >>    
> >>
> >>>2\plugin.jelly
> >>>Element... junit
> >>>Line...... 133
> >>>Column.... 41
> >>>java.lang.NoClassDefFoundError
> >>>Total time: 7 seconds
> >>>Finished at: Fri Mar 04 15:26:43 GMT+01:00 2005
> >>>
> >>>Besides, that doesn't explain the fact that
> >>>      
> >>>
> >>one-2-one
> >>    
> >>
> >>>relations become many-to-one...
> >>>
> >>>bernard
> >>>
> >>>--- Carlos Cuenca <[EMAIL PROTECTED]> wrote:
> >>>
> >>> 
> >>>
> >>>      
> >>>
> >>>>Hi Bernard,
> >>>>
> >>>>to get rid of all those outer joins when
> creating
> >>>>        
> >>>>
> >>a
> >>    
> >>
> >>>>simple query, just 
> >>>>turn on the hibernate proxies. Namespace
> property
> >>>>"hibernateProxy=true"
> >>>>
> >>>>Carlos
> >>>>
> >>>>
> >>>>Bernard Sirius wrote:
> >>>>
> >>>>   
> >>>>
> >>>>        
> >>>>
> >>>>>Hi!
> >>>>>
> >>>>>Again, I have this problem with hibernate: a
> >>>>>          
> >>>>>
> >>simple
> >>    
> >>
> >>>>>query generates an incredible amount of SQL. I
> >>>>>          
> >>>>>
> >>was
> >>    
> >>
> >>>>>thinking that specifying outer-join="false"
> would
> >>>>>solve this, but it doesn't as you probably
> guess.
> >>>>>
> >>>>>I can't figure out how to tell hibernate NOT to
> >>>>>eagerly load relations. It seems to be
> completely
> >>>>>ignorant of the "lazy=true" attribute.
> >>>>>
> >>>>>Now that I've set outer-join="auto", which is
> >>>>>AndroMDA's default, I have hibernate complain
> >>>>>          
> >>>>>
> >>that
> >>    
> >>
> >>>>>"MySQL can only use 31 tables in a join", which
> >>>>>          
> >>>>>
> >>is
> >>    
> >>
> >>>>>documented in their faq
> >>>>>(http://hibernate.bluemars.net/117.html#A29).
> >>>>>
> >>>>>So, as a last resort, as is stated there, I'd
> >>>>>          
> >>>>>
> >>like
> >>    
> >>
> >>>>>     
> >>>>>
> >>>>>          
> >>>>>
> >>>>to
> >>>>   
> >>>>
> >>>>        
> >>>>
> >>>>>try setting max_fetch_depth to 1 or 2, only I
> >>>>>          
> >>>>>
> >>don't
> >>    
> >>
> >>>>>know how to let AndroMDA specify that.
> >>>>>
> >>>>>Of course please let me know if you have other
> >>>>>suggestions
> >>>>>
> >>>>>bernard
> >>>>>
> >>>>>PS: the hibernate query:
> >>>>>
> >>>>>  String query = "SELECT person FROM
>
>>>>>fractals.psychos.core.ontology.entity.PersonImpl
> >>>>>          
> >>>>>
> >>"
> 
=== message truncated ===



        
                
__________________________________ 
Celebrate Yahoo!'s 10th Birthday! 
Yahoo! Netrospective: 100 Moments of the Web 
http://birthday.yahoo.com/netrospective/


-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
_______________________________________________
Andromda-user mailing list
Andromda-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/andromda-user

Reply via email to