-->
These old forums are deprecated now and set to read-only. We are waiting for you on our new forums!
More modern, Discourse-based and with GitHub/Google/Twitter authentication built-in.

All times are UTC - 5 hours [ DST ]



Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 11 posts ] 
Author Message
 Post subject: bug for joined-subclass containing a lazy bag ?
PostPosted: Tue Feb 24, 2004 11:11 am 
Hibernate Team
Hibernate Team

Joined: Thu Dec 18, 2003 9:55 am
Posts: 1977
Location: France
hi all,
i'm working with hibernate 2.1.2.
The hbm files are :

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 2.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd">
<hibernate-mapping>
<class name="com.auchan.protoj2ee.bo.Reception" table="REC_RECEPTION">
<!--jcs-cache usage="read-write" /-->
<!--cache usage="read-write" /-->
<id column="ID_RECEPTION" name="receptionId" >
<generator class="sequence">
<param name="sequence">S_REC_RECEPTION</param>
</generator>
</id>
....
<many-to-one name="operationSpeciale" outer-join="true" column="ID_OPERATION_SPECIALE"/>

</class>
</hibernate-mapping>


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 2.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd">
<hibernate-mapping>
<class name="com.auchan.protoj2ee.bo.OperationSpeciale" table="STK_OPERATION_SPECIALE">
<id column="ID_OPERATION_SPECIALE" name="operationSpecialeId" >
<generator class="sequence">
<param name="sequence">S_STK_OPERATION_SPECIALE</param>
</generator>
</id>
<property column="LIBELLE" name="libelleOperationSpeciale" not-null="true" />

<joined-subclass name="com.auchan.protoj2ee.bo.OpMagasin" table="STK_OP_MAGASIN">
<key column="ID_OPERATION_SPECIALE"/>
<bag name="magasins" cascade="none" lazy="true">
<key column="ID_OPERATION_SPECIALE" />
<one-to-many class="com.auchan.protoj2ee.bo.Magasin" />
</bag>
</joined-subclass>

<joined-subclass name="com.auchan.protoj2ee.bo.OpNationale" table="STK_OP_NATIONALE">
<key column="ID_OPERATION_SPECIALE"/>
<one-to-one name="pays" class="com.auchan.protoj2ee.bo.Pays" outer-join="false" />
</joined-subclass>

</class>
</hibernate-mapping>

Case 1: the magasins bags (second file) has lazy="false"
Reception maReception = (Reception)this.loadObject(new Integer(receptionId));
OpMagasin op = (OpMagasin)maReception.getOperationSpeciale();
// i have the magasins List loaded --> all is ok

Case 2: the magasins bag (second file) has lazy="true"
Reception maReception = (Reception)this.loadObject(new Integer(receptionId));
OpMagasin op = (OpMagasin)maReception.getOperationSpeciale();
op.getMagasins()
// nothing happen, no sql is generated, no exception is thrown, no List is loaded --> op.magasins = null


Top
 Profile  
 
 Post subject:
PostPosted: Tue Feb 24, 2004 12:02 pm 
Hibernate Team
Hibernate Team

Joined: Tue Aug 26, 2003 12:50 pm
Posts: 5130
Location: Melbourne, Australia
1. I very much doubt that "op.magasins = null", unless you have a broken get/set pair
2. Hibernate does not load a collection untill you actually use it.


Top
 Profile  
 
 Post subject:
PostPosted: Tue Feb 24, 2004 12:09 pm 
Hibernate Team
Hibernate Team

Joined: Thu Dec 18, 2003 9:55 am
Posts: 1977
Location: France
i know that, that's why i force op.getMagasins() in my code, usually by doing that, a sql query is launched by hibernate and the lazy collection is loaded.
I've checked my get/set pair and all seems ok... i continue debugging


Top
 Profile  
 
 Post subject:
PostPosted: Tue Feb 24, 2004 12:10 pm 
Hibernate Team
Hibernate Team

Joined: Tue Aug 26, 2003 12:50 pm
Posts: 5130
Location: Melbourne, Australia
op.getMagazins() does NOT access the collection! Think about it!


Top
 Profile  
 
 Post subject:
PostPosted: Tue Feb 24, 2004 12:18 pm 
Hibernate Team
Hibernate Team

Joined: Thu Dec 18, 2003 9:55 am
Posts: 1977
Location: France
and op.getMagazins().get(0)?
what is strange is that by putting lazy="false" all works fine, is my test wrong?
Reception maReception = (Reception)this.loadObject(new Integer(receptionId));
OpMagasin op = (OpMagasin)maReception.getOperationSpeciale();
Magasin mag = (Magasin)(op.getMagasins().get(0)); //after that line, mag still is null but with lazy=false it isn't...


Top
 Profile  
 
 Post subject:
PostPosted: Tue Feb 24, 2004 12:22 pm 
Hibernate Team
Hibernate Team

Joined: Tue Aug 26, 2003 12:50 pm
Posts: 5130
Location: Melbourne, Australia
Quote:
Magasin mag = (Magasin)(op.getMagasins().get(0)); //after that line, mag still is null but with lazy=false it isn't...


Eh?? If op.magasins was really null as you claim, then that line would throw an NPE.

I gotta say, I don't really believe anything you are telling me here....


Top
 Profile  
 
 Post subject:
PostPosted: Tue Feb 24, 2004 12:32 pm 
Hibernate Team
Hibernate Team

Joined: Thu Dec 18, 2003 9:55 am
Posts: 1977
Location: France
please trust me, i'm not going to waste your time by saying false things, i'm using hibernate since version 1.1, i know i have a lot of other things to learn about it.
When you debug in eclipse, juste before catching the nullPointerException, you can "trace" the state og all objects you are using.
I repeat, this works fine with lazy=false, this bug when lazy=true.

I pretty sure that the bug is not an hibernate bug but a Delpouve's bug, but my code is pretty simple and i understand you think i'm crazy... lol
but i'm not.
On the other hand, when you look at the other joined subclass,
<joined-subclass name="com.auchan.protoj2ee.bo.OpNationale" table="STK_OP_NATIONALE">
<key column="ID_OPERATION_SPECIALE"/>
<many-to-one column="ID_PAYS" name="pays" class="com.auchan.protoj2ee.bo.Pays" outer-join="false" />
</joined-subclass>

this work fine with outer-join="true" or "false"


Top
 Profile  
 
 Post subject:
PostPosted: Tue Feb 24, 2004 12:35 pm 
Hibernate Team
Hibernate Team

Joined: Tue Aug 26, 2003 12:50 pm
Posts: 5130
Location: Melbourne, Australia
alright, show me the log.


Top
 Profile  
 
 Post subject:
PostPosted: Tue Feb 24, 2004 1:00 pm 
Regular
Regular

Joined: Tue Aug 26, 2003 3:09 pm
Posts: 58
I don't know the answer to your original question, but I might have some insight as to why you think the property is null:

When you debug in eclipse, the object you are looking at is the proxy, not the real object. If it has a name something like MyClass$$EnhancedByCGLIB$$e344196b, then this is the case.

The proxy always contains all null fields. The real object is inside another object in the proxy. With my setup, inside the proxy there is a field called "CGLIB$CALLBACK_0" with another field called "target". This "target" field is the real object.

Is this what you are seeing?


Top
 Profile  
 
 Post subject:
PostPosted: Tue Feb 24, 2004 1:13 pm 
Hibernate Team
Hibernate Team

Joined: Thu Dec 18, 2003 9:55 am
Posts: 1977
Location: France
ok thanks,

*****************************************************
first: lazy = false
Reception maReception = (Reception)this.loadObject(new Integer(receptionId));
------------------------------------------------------------------
Hibernate: select etatrece1_.ID_ETAT_RECEPTION as ID_ETAT_RECEPTION0_, etatrece1_.LIBELLE as LIBELLE0_, fourniss2_.ID_FOURNISSEUR as ID_FOURNISSEUR1_, fourniss2_.LIBELLE as LIBELLE1_, fourniss2_.ID_MAGASIN as ID_MAGASIN1_, operatio3_.ID_OPERATION_SPECIALE as ID_OPERATION_SPECIALE2_, decode (operatio3_.ID_OPERATION_SPECIALE, operatio3__1.ID_OPERATION_SPECIALE, 1, operatio3__2.ID_OPERATION_SPECIALE, 2,0 ) as clazz_2_, operatio3_.LIBELLE as LIBELLE1_2_, operatio3__2.ID_PAYS as ID_PAYS3_2_, receptio0_.ID_RECEPTION as ID_RECEPTION3_, receptio0_.NUM_COMMANDE as NUM_COMM2_3_, receptio0_.NUM_RECEPTION as NUM_RECE3_3_, receptio0_.DATE_COMMANDE as DATE_COM4_3_, receptio0_.DATE_1_RECEPTION as DATE_1_R5_3_, receptio0_.COURS_OR_FACTURE as COURS_OR6_3_, receptio0_.COURS_OR_AUCHAN as COURS_OR7_3_, receptio0_.NBR_PRODUIT_FACTURE as NBR_PROD8_3_, receptio0_.MONTANT_FACTURE as MONTANT_9_3_, receptio0_.ID_MAGASIN as ID_MAGASIN3_, receptio0_.ID_ETAT_RECEPTION as ID_ETAT11_3_, receptio0_.ID_FOURNISSEUR as ID_FOUR12_3_, receptio0_.ID_OPERATION_SPECIALE as ID_OPER13_3_ from REC_RECEPTION receptio0_, REC_ETAT_RECEPTION etatrece1_, STK_FOURNISSEUR fourniss2_, STK_OPERATION_SPECIALE operatio3_, STK_OP_MAGASIN operatio3__1, STK_OP_NATIONALE operatio3__2 where receptio0_.ID_RECEPTION=? and receptio0_.ID_ETAT_RECEPTION=etatrece1_.ID_ETAT_RECEPTION(+) and receptio0_.ID_FOURNISSEUR=fourniss2_.ID_FOURNISSEUR(+) and receptio0_.ID_OPERATION_SPECIALE=operatio3_.ID_OPERATION_SPECIALE(+) and operatio3_.ID_OPERATION_SPECIALE=operatio3__1.ID_OPERATION_SPECIALE(+) and operatio3_.ID_OPERATION_SPECIALE=operatio3__2.ID_OPERATION_SPECIALE(+)
Hibernate: select magasin0_.ID_MAGASIN as ID_MAGASIN__, magasin0_.ID_MAGASIN as ID_MAGASIN, magasin0_.LIBELLE_MAGASIN as LIBELLE_2_ from MAGASIN magasin0_ where magasin0_.ID_OPERATION_SPECIALE=?
Hibernate: select pays0_.ID_PAYS as ID_PAYS, pays0_.LIBELLE_PAYS as LIBELLE_2_ from PAYS pays0_ where pays0_.ID_PAYS=?
------------------------------------------------------------------
when i look on the variable debug window, i have operationSpeciale= com.auchan.protoj2ee.bo.OpMagasin (id=253)
+ magasins= net.sf.hibernate.collection.Bag (id=258)
additions= null
bag= java.util.ArrayList (id=260)
collectionSnapshot= net.sf.hibernate.impl.SessionImpl$CollectionEntry (id=265)
directlyAccessible= false
initialized= true
session= net.sf.hibernate.impl.SessionImpl (id=220)
in the bag, i have the magasin....
*****************************************************
second: lazy = true
Reception maReception = (Reception)this.loadObject(new Integer(receptionId));
------------------------------------------------------------------
Hibernate: select etatrece1_.ID_ETAT_RECEPTION as ID_ETAT_RECEPTION0_, etatrece1_.LIBELLE as LIBELLE0_, fourniss2_.ID_FOURNISSEUR as ID_FOURNISSEUR1_, fourniss2_.LIBELLE as LIBELLE1_, fourniss2_.ID_MAGASIN as ID_MAGASIN1_, operatio3_.ID_OPERATION_SPECIALE as ID_OPERATION_SPECIALE2_, decode (operatio3_.ID_OPERATION_SPECIALE, operatio3__1.ID_OPERATION_SPECIALE, 1, operatio3__2.ID_OPERATION_SPECIALE, 2,0 ) as clazz_2_, operatio3_.LIBELLE as LIBELLE1_2_, operatio3__2.ID_PAYS as ID_PAYS3_2_, receptio0_.ID_RECEPTION as ID_RECEPTION3_, receptio0_.NUM_COMMANDE as NUM_COMM2_3_, receptio0_.NUM_RECEPTION as NUM_RECE3_3_, receptio0_.DATE_COMMANDE as DATE_COM4_3_, receptio0_.DATE_1_RECEPTION as DATE_1_R5_3_, receptio0_.COURS_OR_FACTURE as COURS_OR6_3_, receptio0_.COURS_OR_AUCHAN as COURS_OR7_3_, receptio0_.NBR_PRODUIT_FACTURE as NBR_PROD8_3_, receptio0_.MONTANT_FACTURE as MONTANT_9_3_, receptio0_.ID_MAGASIN as ID_MAGASIN3_, receptio0_.ID_ETAT_RECEPTION as ID_ETAT11_3_, receptio0_.ID_FOURNISSEUR as ID_FOUR12_3_, receptio0_.ID_OPERATION_SPECIALE as ID_OPER13_3_ from REC_RECEPTION receptio0_, REC_ETAT_RECEPTION etatrece1_, STK_FOURNISSEUR fourniss2_, STK_OPERATION_SPECIALE operatio3_, STK_OP_MAGASIN operatio3__1, STK_OP_NATIONALE operatio3__2 where receptio0_.ID_RECEPTION=? and receptio0_.ID_ETAT_RECEPTION=etatrece1_.ID_ETAT_RECEPTION(+) and receptio0_.ID_FOURNISSEUR=fourniss2_.ID_FOURNISSEUR(+) and receptio0_.ID_OPERATION_SPECIALE=operatio3_.ID_OPERATION_SPECIALE(+) and operatio3_.ID_OPERATION_SPECIALE=operatio3__1.ID_OPERATION_SPECIALE(+) and operatio3_.ID_OPERATION_SPECIALE=operatio3__2.ID_OPERATION_SPECIALE(+)
------------------------------------------------------------------
OpMagasin op = (OpMagasin)maReception.getOperationSpeciale();
when i look on the variable debug window, i have op= com.auchan.protoj2ee.bo.OpMagasin (id=227)
libelleOperationSpeciale= "OP ARNO"
magasins= net.sf.hibernate.collection.Bag (id=231)
additions= null
bag= null
collectionSnapshot= net.sf.hibernate.impl.SessionImpl$CollectionEntry (id=242)
directlyAccessible= false
initialized= false
session= net.sf.hibernate.impl.SessionImpl (id=220)
operationSpecialeId= java.lang.Integer (id=239)

here the bag is null --> lazy seems to be working fine
then
Magasin tmp = (Magasin)(op.getMagasins().get(0));
------------------------------------------------------------------
Hibernate: select magasin0_.ID_MAGASIN as ID_MAGASIN__, pays1_.ID_PAYS as ID_PAYS0_, pays1_.LIBELLE_PAYS as LIBELLE_2_0_, magasin0_.ID_MAGASIN as ID_MAGASIN1_, magasin0_.LIBELLE_MAGASIN as LIBELLE_2_1_ from MAGASIN magasin0_, PAYS pays1_ where magasin0_.ID_OPERATION_SPECIALE=? and magasin0_.ID_MAGASIN=pays1_.ID_PAYS(+)
Hibernate: select pays0_.ID_PAYS as ID_PAYS, pays0_.LIBELLE_PAYS as LIBELLE_2_ from PAYS pays0_ where pays0_.ID_PAYS=?
------------------------------------------------------------------
Now, i look idiot because i don't know why but it works now.... we have
tmp= com.auchan.protoj2ee.bo.Magasin (id=248)
idMagasin= java.lang.Integer (id=256)
libelleMagasin= "V2"
pays= null
As you can see, the query generated is asking to load the pays "attribute", you can see in the mapping file that we have an outer-join. And even if the query seems ok, the result is that pays = null
<hibernate-mapping>
<class name="com.auchan.protoj2ee.bo.Magasin" table="MAGASIN">
<id column="ID_MAGASIN" name="idMagasin" >
<generator class="assigned">
</generator>
</id>
<property column="LIBELLE_MAGASIN" name="libelleMagasin" not-null="true" />
<many-to-one name="pays" column="ID_PAYS" class="com.auchan.protoj2ee.bo.Pays" outer-join="false" />
</class>
</hibernate-mapping>

if we "force" by doing Pays test = tmp.getPays(); test is null but another query is lanched:
------------------------------------------------------------------
Hibernate: select etatrece1_.ID_ETAT_RECEPTION as ID_ETAT_RECEPTION0_, etatrece1_.LIBELLE as LIBELLE0_, fourniss2_.ID_FOURNISSEUR as ID_FOURNISSEUR1_, fourniss2_.LIBELLE as LIBELLE1_, fourniss2_.ID_MAGASIN as ID_MAGASIN1_, operatio3_.ID_OPERATION_SPECIALE as ID_OPERATION_SPECIALE2_, decode (operatio3_.ID_OPERATION_SPECIALE, operatio3__1.ID_OPERATION_SPECIALE, 1, operatio3__2.ID_OPERATION_SPECIALE, 2,0 ) as clazz_2_, operatio3_.LIBELLE as LIBELLE1_2_, operatio3__2.ID_PAYS as ID_PAYS3_2_, receptio0_.ID_RECEPTION as ID_RECEPTION3_, receptio0_.NUM_COMMANDE as NUM_COMM2_3_, receptio0_.NUM_RECEPTION as NUM_RECE3_3_, receptio0_.DATE_COMMANDE as DATE_COM4_3_, receptio0_.DATE_1_RECEPTION as DATE_1_R5_3_, receptio0_.COURS_OR_FACTURE as COURS_OR6_3_, receptio0_.COURS_OR_AUCHAN as COURS_OR7_3_, receptio0_.NBR_PRODUIT_FACTURE as NBR_PROD8_3_, receptio0_.MONTANT_FACTURE as MONTANT_9_3_, receptio0_.ID_MAGASIN as ID_MAGASIN3_, receptio0_.ID_ETAT_RECEPTION as ID_ETAT11_3_, receptio0_.ID_FOURNISSEUR as ID_FOUR12_3_, receptio0_.ID_OPERATION_SPECIALE as ID_OPER13_3_ from REC_RECEPTION receptio0_, REC_ETAT_RECEPTION etatrece1_, STK_FOURNISSEUR fourniss2_, STK_OPERATION_SPECIALE operatio3_, STK_OP_MAGASIN operatio3__1, STK_OP_NATIONALE operatio3__2 where receptio0_.ID_RECEPTION=? and receptio0_.ID_ETAT_RECEPTION=etatrece1_.ID_ETAT_RECEPTION(+) and receptio0_.ID_FOURNISSEUR=fourniss2_.ID_FOURNISSEUR(+) and receptio0_.ID_OPERATION_SPECIALE=operatio3_.ID_OPERATION_SPECIALE(+) and operatio3_.ID_OPERATION_SPECIALE=operatio3__1.ID_OPERATION_SPECIALE(+) and operatio3_.ID_OPERATION_SPECIALE=operatio3__2.ID_OPERATION_SPECIALE(+)
java.lang.NullPointerException
at com.auchan.protoj2ee.bo.DAOHibernateReception.rechercherReception(DAOHibernateReception.java:159)
at com.auchan.protoj2ee.bdl.ReceptionServiceBDL.rechercherReception(ReceptionServiceBDL.java:47)
at com.auchan.protoj2ee.bdl.ReceptionSessionBDL.rechercherReception(ReceptionSessionBDL.java:60)
at com.auchan.protoj2ee.navigation.action.reception.SecondeReceptionAction.execute(SecondeReceptionAction.java:42)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:465)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1422)
at com.auchan.fwk.technique.utilitaire.mvc.struts.ActionServlet.process(ActionServlet.java:101)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:505)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at com.auchan.fwk.technique.utilitaire.mvc.dao.hibernate.HibernateActionFilter.doFilter(HibernateActionFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:213)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at org.displaytag.filter.ResponseOverrideFilter.doFilter(ResponseOverrideFilter.java:87)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:213)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2416)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:601)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:392)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:565)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:619)
at java.lang.Thread.run(Thread.java:536)
2004-02-24 18:11:48,203 INFO [Thread-10] action.RequestProcessor (RequestProcessor.java:225) - Processing a 'GET' for path '/exception'
2004-02-24 18:11:48,265 INFO [Thread-10] logging.Logger (Logger.java:609) - Non connect


Top
 Profile  
 
 Post subject:
PostPosted: Tue Feb 24, 2004 1:32 pm 
Hibernate Team
Hibernate Team

Joined: Thu Dec 18, 2003 9:55 am
Posts: 1977
Location: France
i've got it:
everybody know that if you modify a file outside eclipse (i do this for the hbm file), you need to make a refresh on your eclipse projet if you want eclipse to "see" your changes.
Then you need to rebuild your project to "move" your hbm file from src to classpath and then restart tomcat.
I was doing all this but too quiclky --> tomcat was running without the updated hbm files...., at the beginning, the mapping for "pays" was wrong, i'll modify it but i was to quick on the refresh/rebuild/restart method now, all seems to be ok.
I'm very sorry Gavin :((


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 11 posts ] 

All times are UTC - 5 hours [ DST ]


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
© Copyright 2014, Red Hat Inc. All rights reserved. JBoss and Hibernate are registered trademarks and servicemarks of Red Hat, Inc.