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

Reply via email to