cayenne-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Marco Gattei <marco.gat...@gmail.com>
Subject Cayenne 3.0.3 Relationship fault when adding DBRelationShip join
Date Tue, 24 Apr 2012 10:29:18 GMT
Hi everyone,

     recentlty i add to rework on a project that used Cayenne 3.0.1 .
I did two modification:

-    upgrade to cayenne 3.0.2 ( worked fine )
-    i had to change (by dba request ) one  of my relationship join, 
adding another field  in the relationship
from RICORSI_PENDENTI to VER_CDS  ( field CODENTE)

When i access one side of the relation ship from RICORSI_PENDENTI to 
VER_CDS i get this exception.


10:06:32,952 INFO  QueryLogger     - SELECT t0.AKEY, t0.CODENTE, 
t0.NUMEROSOGGETTI, t0.DATARUOLO, t0.DATAACCERTAMENTO, 
t0.ORAVERBALIZZAZIONE, t0.TARGA, t0.ID_VERBALIZZ1, 
t0.DATANOTIFICAINGIUNZIONE, t0.ID_VERBALIZZ2, t0.LUOGO_VERB, 
t0.NUMEROBOLLETTA, t0.TIPOTARGA, t0.RACCOMANDATAVERBALE, t0.SPESEAMMVE, 
t0.TIPOSUPPLEMENTARE, t0.DATAVERBALE, t0.FLAG_VARI, t0.VERBALIZZANTE1, 
t0.VERBALIZZANTE2, t0.ID_STRADA2, t0.VERBALIZZANTE3, t0.ID_STRADA1, 
t0.USOMEZZO, t0.LOCATARIO, t0.SPESEALTRE, t0.TIPOMEZZO, t0.NUMEROCIVICO, 
t0.PROTOCOLLOVERBALE, t0.DATARICORSO, t0.CODICESINISTRO, 
t0.DATAVERBALIZZAZIONE, t0.TIPOV, t0.NUMEROREGISTRO, t0.TIPOVERBALE, 
t0.TIPO_VIOLAZ, t0.STRADA1, t0.STRADA2, t0.DATASPEDIZIONEVERBALE, 
t0.MODELLO, t0.AUSILIARIO, t0.IMPORTOSANZIONI, t0.NAZIONE, 
t0.DATATRASMISSIONE, t0.TELAIO, t0.ORAACCERTAMENTO, t0.SPESEPOSTALI, 
t0.DATATRASMISSIONERICORSO, t0.ID_LUOGO_VERB, t0.ANNOVERBALE, 
t0.NOMEOPERATORE, t0.KILOMETRO, t0.DATANOTIFICAVERBALE, t0.MARCA, 
t0.VALUTA, t0.AGENTE2, t0.AGENTE1, t0.STATOVERBALE, t0.ID_SINISTRO, 
t0.SUBSTATO, t0.DATAARCHIVIAZIONE, t0.RIMOSSO FROM piemme.VER_CDS t0 
WHERE (t0.AKEY = ?) AND (t0.CODENTE = ?) [bind: 1:200019405, 2:'H211']
10:06:32,968 INFO  QueryLogger     - === returned 1 row. - took 18 ms.
10:06:32,972 INFO  QueryLogger     - +++ transaction committed.
[Click] [error] handleException: 
org.apache.cayenne.FaultFailureException: [v.3.0.2 apr 20 2012 16:13:44] 
Error resolving fault for ObjectId: <ObjectId:VerCds, AKEY=200019405, 
CODENTE=H211> and state (hollow). Possible cause - matching row is 
missing from the database.
     at 
org.apache.cayenne.BaseContext.prepareForAccess(BaseContext.java:171)
     at 
org.apache.cayenne.CayenneDataObject.readProperty(CayenneDataObject.java:219)
     at com.sapidata.piemme.domain.VerCds.getAnagrafiche(VerCds.java:50)
     at 
com.sapidata.piemme.domain.VerCds.getAnagrafeNotificata(VerCds.java:61)
     at com.sapidata.ricorsi.web.user.InfoPage.onInit(InfoPage.java:71)
     at net.sf.click.ClickServlet.processPage(ClickServlet.java:509)
     at net.sf.click.ClickServlet.handleRequest(ClickServlet.java:331)
     at net.sf.click.ClickServlet.doGet(ClickServlet.java:250)
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:627)
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
     at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
     at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
     at 
net.sf.click.extras.cayenne.DataContextFilter.doFilter(DataContextFilter.java:238)
     at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
     at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
     at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
     at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
     at 
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:563)
     at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
     at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
     at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
     at 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
     at 
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:879)
     at 
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
     at 
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
     at 
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
     at 
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
     at java.lang.Thread.run(Thread.java:662)


It seems to me that the object VerCds( VER_CDS ) gets fetched from 
Cayenne, but for some reason i get a Fault where accessing property 
"anagrafiche" which in turn is a relationship.


if i get back to a single field relathionship from RICORSI_PENDENTI to 
VER_CDS i don't get the fault and all the relationship of VER_CDS get 
correctly fetched:

12:21:23,124 INFO  QueryLogger     - SELECT t0.AKEY, t0.CODENTE, 
t0.NUMEROSOGGETTI, t0.DATARUOLO, t0.DATAACCERTAMENTO, 
t0.ORAVERBALIZZAZIONE, t0.TARGA, t0.ID_VERBALIZZ1, 
t0.DATANOTIFICAINGIUNZIONE, t0.ID_VERBALIZZ2, t0.LUOGO_VERB, 
t0.NUMEROBOLLETTA, t0.TIPOTARGA, t0.RACCOMANDATAVERBALE, t0.SPESEAMMVE, 
t0.TIPOSUPPLEMENTARE, t0.DATAVERBALE, t0.FLAG_VARI, t0.VERBALIZZANTE1, 
t0.VERBALIZZANTE2, t0.ID_STRADA2, t0.VERBALIZZANTE3, t0.ID_STRADA1, 
t0.USOMEZZO, t0.LOCATARIO, t0.SPESEALTRE, t0.TIPOMEZZO, t0.NUMEROCIVICO, 
t0.PROTOCOLLOVERBALE, t0.DATARICORSO, t0.CODICESINISTRO, 
t0.DATAVERBALIZZAZIONE, t0.TIPOV, t0.NUMEROREGISTRO, t0.TIPOVERBALE, 
t0.TIPO_VIOLAZ, t0.STRADA1, t0.STRADA2, t0.DATASPEDIZIONEVERBALE, 
t0.MODELLO, t0.AUSILIARIO, t0.IMPORTOSANZIONI, t0.NAZIONE, 
t0.DATATRASMISSIONE, t0.TELAIO, t0.ORAACCERTAMENTO, t0.SPESEPOSTALI, 
t0.DATATRASMISSIONERICORSO, t0.ID_LUOGO_VERB, t0.ANNOVERBALE, 
t0.NOMEOPERATORE, t0.KILOMETRO, t0.DATANOTIFICAVERBALE, t0.MARCA, 
t0.VALUTA, t0.AGENTE2, t0.AGENTE1, t0.STATOVERBALE, t0.ID_SINISTRO, 
t0.SUBSTATO, t0.DATAARCHIVIAZIONE, t0.RIMOSSO FROM piemme.VER_CDS t0 
WHERE t0.AKEY = ? [bind: 1:200019405]
12:21:23,130 INFO  QueryLogger     - === returned 1 row. - took 7 ms.
12:21:23,130 INFO  QueryLogger     - +++ transaction committed.
12:21:23,131 INFO  QueryLogger     - --- will run 1 query.
12:21:23,131 INFO  QueryLogger     - --- transaction started.
12:21:23,134 INFO  QueryLogger     - SELECT DISTINCT 
t0.CODICENOTIFICAING, t0.CODICECONTRIBUENTE, t0.LUOGORESIDENZA, 
t0.LUOGORILASCIODOCUMENTO, t0.CODFISCOMUNENASCITA, 
t0.DATANOTIFICAINGIUNZIONE, t0.ANNONASCITA, t0.PROVRESIDENZA, 
t0.DATAPASSAGGIOPROPRIETA, t0.DATAIDENTIFICAZIONE, t0.SESSO, t0.SPESEPT, 
t0.CODICEFISCALE, t0.NUMERODOCUMENTO, t0.SOCIETA, t0.CODENTE, 
t0.LUOGONASCITA, t0.INDIRIZZORESIDENZA, t0.PARTITAIVA, 
t0.TIPOANAGRAFICA, t0.PARENTPROP, t0.PARENT, t0.DATANOTIFICARUOLO, 
t0.DOCUMENTO, t0.DATANOTIFICAVERBALE, t0.COGNOME, t0.PROT_REINTEST, 
t0.SPESEAM, t0.TIPODOCUMENTO, t0.QUINTOC, t0.ORIGINEDATI, 
t0.DATAAGGDATI, t0.NUMEROREGISTRO, t0.DATADOCUMENTO, t0.ANNO, 
t0.DATANASCITA, t0.CAPRESIDENZA, t0.NOME, t0.CODICENOTIFICA, t0.AKEY 
FROM piemme.ANA_CDS t0 JOIN piemme.VER_CDS t1 ON (t0.PARENT = t1.AKEY 
AND t0.CODENTE = t1.CODENTE) WHERE t1.AKEY = ? [bind: 1:200019405]
12:21:23,140 INFO  QueryLogger     - === returned 1 row. - took 9 ms.
12:21:23,140 INFO  QueryLogger     - +++ transaction committed.
12:21:23,141 INFO  QueryLogger     - --- will run 1 query.
12:21:23,141 INFO  QueryLogger     - --- transaction started.
12:21:23,144 INFO  QueryLogger     - SELECT DISTINCT t0.DATAREVOCA, 
t0.ESISTERICORSO, t0.IMPORTOORIGINALE, t0.PROTOCOLLO, 
t0.DATANOTIFICAINGIUNZIONE, t0.IMPORTOINGIUNZIONE, t0.NUMEROBOLLETTA, 
t0.SPESENOTINGORIG, t0.DATASTAMPA, t0.SPESENOTIFICAINGIUNZIONE, 
t0.NUM_RG_RICORSO, t0.PROTRICORSO, t0.NOTE, t0.ESITORICORSOING, 
t0.CODENTE, t0.ANNOVERBALE, t0.ANNOINGIUNZIONE, t0.SPESEINGIUNZIONE, 
t0.PARENT, t0.NUMEROINGIUNZIONE, t0.NUMEROREGISTRO, t0.SPEDIRE, 
t0.DATARICORSOING, t0.DATAINGIUNZIONE, t0.DATAESITORICING, 
t0.DATASOSPENS, t0.AKEY FROM piemme.CINGIUNZ t0 JOIN piemme.VER_CDS t1 
ON (t0.PARENT = t1.AKEY AND t0.CODENTE = t1.CODENTE) WHERE t1.AKEY = ? 
[bind: 1:200019405]
12:21:23,147 INFO  QueryLogger     - === returned 0 rows. - took 5 ms.
12:21:23,147 INFO  QueryLogger     - +++ transaction committed.
12:21:23,148 INFO  QueryLogger     - --- will run 1 query.
12:21:23,148 INFO  QueryLogger     - --- transaction started.
12:21:23,153 INFO  QueryLogger     - SELECT DISTINCT t0.GP_MANDDTBENE, 
t0.CONTRODEDUFFICIO, t0.DTRIMB_SPESEACC, t0.GP_MANDDTRICH, 
t0.RIFERIMENTI_RIMB, t0.GP_DTDISPOS, t0.GP_TIPOSOSP, t0.GP_NUMRG, 
t0.NUMEROBOLLETTA, t0.DTRICOUT, t0.GP_DTSOSPFIN, t0.DATA_RIC_PREF, 
t0.PROTRICOUT, t0.DESCNOPROCED, t0.GP_DISPFL1, t0.GP_ISSPESE, 
t0.GP_PROTRICOUT, t0.DT_OPERATORE, t0.GP_DISPFL2, t0.GP_DTUDIENZEDONE, 
t0.DATATRASMPREFETTO2, t0.CATEGORIARICORSO, t0.DATATRASMPREFETTO3, 
t0.RIFRIMB_SPESEACC, t0.GP_DTTRASMATTI, t0.GP_GGVALPAGA, 
t0.NOME_OPERATORE, t0.DATA_RICHIESTARIMB, t0.GP_DTUDIENZANEXT, 
t0.DATARICORSO, t0.PARENT, t0.GP_DTSOSPIN, t0.MOTIVAZIONI, t0.CODENTE, 
t0.GP_IMPSPES, t0.NUMEROREGISTRO, t0.OBBL_CDEDAGENT, t0.DATASTCONTROD, 
t0.CODPAG, t0.DATA_BENESTARERRIMB, t0.DISPONIBILE, t0.GP_NOTE_MOTIVAZ, 
t0.GP_DISPDT2, t0.GP_NOMEGP, t0.GP_DISPDT1, t0.GP_DTVALINI, 
t0.GP_IMPSANZ, t0.GP_DTRICOUT, t0.AKEY, t0.RICEVUTA, t0.RICORSOTARDIVO, 
t0.IMPRIMB_SPESEACC, t0.GP_IMPSANZRUO, t0.AUDIZIONE_TIPO, t0.NOTE, 
t0.AUTORITAGIUDIZIARIA, t0.GP_DISPCHAR3, t0.PROT_RIC_PREF, 
t0.GP_SPESEPROC, t0.GP_DISPCHAR1, t0.ANNOVERBALE, t0.CONTRODEDUZIONE, 
t0.GP_DISPCHAR2, t0.PROTOCOLLORICORSO, t0.GP_PROTSPESE, 
t0.GP_PROTDISPOS, t0.PROTOCOLLOPREFETTO, t0.PROCOTOLLOPREFETTO2, 
t0.VALUTA, t0.GP_MANDNUM, t0.ESITORICORSO, t0.GP_IMPSPESRUO, 
t0.PROTOCOLLOPREFETTO3, t0.ANNORICORSO, t0.DATAESITO, 
t0.DATATRASMPREFETTO, t0.AUDIZIONE, t0.GP_DTSPESE FROM piemme.CRICORSI 
t0 JOIN piemme.VER_CDS t1 ON (t0.PARENT = t1.AKEY AND t0.CODENTE = 
t1.CODENTE) WHERE t1.AKEY = ? [bind: 1:200019405]
12:21:23,162 INFO  QueryLogger     - === returned 1 row. - took 14 ms.
12:21:23,162 INFO  QueryLogger     - +++ transaction committed.
12:21:23,167 INFO  QueryLogger     - --- will run 1 query.
12:21:23,167 INFO  QueryLogger     - --- transaction started.
12:21:23,173 INFO  QueryLogger     - {? = call 
piemme.GIORNONONFESTIVONEGATIVO(?, ?)} [bind: 1:'[OUT]', 2:'2008-02-11 
00:00:00.0', 3:-10]
12:21:23,196 INFO  QueryLogger     - === returned 1 row. - took 0 ms.
12:21:23,197 INFO  QueryLogger     - +++ transaction committed.
12:21:23,202 INFO  QueryLogger     - --- will run 1 query.
12:21:23,202 INFO  QueryLogger     - --- transaction started.
12:21:23,204 INFO  QueryLogger     - SELECT DISTINCT t0.CODENTE, 
t0.PREF_RIFCONF, t0.ANNOVERBALE, t0.PROTOCOLLO, t0.AKEY, 
t0.CODICECAUSALE, t0.PARENT, t0.PREF_RIFTRASM, t0.NUMEROBOLLETTA, 
t0.PREF_DTTRASM, t0.NUMEROARCHIVIAZIONE, t0.DATASTAMPA, 
t0.NUMEROREGISTRO, t0.PREF_DTCONF, t0.DATAST_LETTERA, t0.ANNOORDINANZA, 
t0.DATAARCHIVIAZIONE, t0.CAUSALEARCHIVIAZIONE FROM PIEMME.CARCHIV t0 
JOIN piemme.VER_CDS t1 ON (t0.PARENT = t1.AKEY AND t0.CODENTE = 
t1.CODENTE) WHERE t1.AKEY = ? [bind: 1:200019405]
12:21:23,207 INFO  QueryLogger     - === returned 0 rows. - took 5 ms.
12:21:23,207 INFO  QueryLogger     - +++ transaction committed.
12:21:23,208 INFO  QueryLogger     - --- will run 1 query.
12:21:23,209 INFO  QueryLogger     - --- transaction started.
12:21:23,212 INFO  QueryLogger     -  SELECT V.*  FROM PIEMME.VER_CDS 
V,PIEMME.T180PP T  WHERE T.PARENT2_180_8 =  200019405  AND T.CODENTE = ? 
AND T.PARENT = V.akey AND T.CODENTE = V.CODENTE [bind: 1:'H211']
12:21:23,222 INFO  QueryLogger     - === returned 0 rows. - took 10 ms.
12:21:23,223 INFO  QueryLogger     - +++ transaction committed.
12:21:23,223 INFO  QueryLogger     - --- will run 1 query.
12:21:23,224 INFO  QueryLogger     - --- transaction started.
12:21:23,225 INFO  QueryLogger     -  SELECT V.*  from PIEMME.VER_CDS V, 
PIEMME.T180 T  WHERE T.PARENT2_180_8 =  200019405 AND T.CODENTE = ? AND 
T.PARENT = V.akey AND T.CODENTE = V.CODENTE [bind: 1:'H211']
12:21:23,229 INFO  QueryLogger     - === returned 0 rows. - took 4 ms.
12:21:23,230 INFO  QueryLogger     - +++ transaction committed.

I think i'm missing somthing in the modeler or my absution of simply 
adding a filed to the RICORSI_PENDENTI --> VER_CDS relationship is wrong.

I hope i've expressed my problem with enough clarity .....
Can somebody please provide some hint to put me in the rigth direction ?

Of cource i can fetch Data Rows wrinting an SQLTemplate script for 
resolving relatiohns on the DB and then manage relathioship 
programatically, but i would like to use SelectQuery with prefetch instead.

Thanks, Marco


Mime
View raw message