Re: Fetching on 2 EOMODELS using different schema in DATABASE with but have relationship
Re: Fetching on 2 EOMODELS using different schema in DATABASE with but have relationship
- Subject: Re: Fetching on 2 EOMODELS using different schema in DATABASE with but have relationship
- From: Pascal Robert <email@hidden>
- Date: Wed, 11 May 2011 08:08:38 -0400
Le 2011-05-11 à 07:58, email@hidden a écrit :
> Hi,
>
> I follwed all your instructions and corrected my eomodel and my fetch spec. give this request.
>
> 33963 [WorkerThread0] DEBUG NSLog - evaluateExpression: <com.webobjects.jdbcadaptor.OraclePlugIn$OracleExpression:
> "SELECT DISTINCT t0.ANC_UV_OUVERTE_ID, t0.CATEG_ID, t0.CRE_DATE, t0.DIPL_SPEC_$C, t0.DIPLOME_$C, t0.MAJ_AUTEUR, t0.MAJ_DATE, t0.NLE_UV_OUVERTE_ID, t0.UV_CREDITS_ECTS, t0.UV_OUV_ID
> FROM GEST_UV.UV_OUVERTES t0, GEST_UV.UV_OUV T1, GERRY.ETU_INSCR_ADM T3, GERRY.DIPLOME T2
> WHERE ((T1.AN_UNIV like ? ESCAPE '\' AND T1.PRD_UNIV like ? ESCAPE '\') OR t0.DIPLOME_$C like ? ESCAPE '\' OR T3.NIVEAU_ADM = ? OR T1.UV_OUV_ID = ?) AND t0.UV_OUV_ID = T1.UV_OUV_ID AND T2.DIPLOME_$C = T3.DIPLOME_$C AND t0.DIPLOME_$C = T2.DIPLOME_$C ORDER BY t0.DIPLOME_$C ASC"
> withBindings: 1:"2005"(anUniv), 2:"1A"(prdUniv), 3:"ING2"(diplomec), 4:"3"(niveauAdm), 5:131(uvOuvId)>
>
> The problem is the time(very very very slow) it takes to return data and get outOfMemory exception. (see below)
>
> 2520004 [WorkerThread0] DEBUG NSLog - 68758 row(s) processed
68758 rows, that's a lot of data! If you want to display the data in a display group, use ERXBatchingDisplayGroup from Project Wonder, this way it will fetch only the needed objects for the current batch (eg, if you show 10 objects at a time, ERXBatchingDisplayGroup will fetch only 10 objects per page). Something like this:
public ERXBatchingDisplayGroup<Member> dgMembers;
static EOQualifier publicMembersQualifier = Member.SHOW_PROFILE.is(true);
public final static EOSortOrdering lastUpdateSort = new EOSortOrdering(Member.DATE_LAST_MODIFICATION_KEY,EOSortOrdering.CompareDescending);
EODatabaseDataSource ds = new EODatabaseDataSource(ec, Member.ENTITY_NAME);
dgMembers = new ERXBatchingDisplayGroup<Member>();
dgMembers.setNumberOfObjectsPerBatch(10);
dgMembers.setDataSource(ds);
dgMembers.setSortOrderings(new NSArray<EOSortOrdering>(lastUpdateSort));
dgMembers.setQualifier(publicMembersQualifier);
Even if Oracle might returns 68 758 rows fast, EOF will take a some time to convert those 68 758 rows to EOs.
> 2520005 [WorkerThread0] DEBUG NSLog - === Commit Internal Transaction
> 2527790 [WorkerThread0] WARN NSLog - <WOWorkerThread id=0 socket=null> Throwable occurred: java.lang.OutOfMemoryError: Java heap space
> 2527790 [WorkerThread0] WARN NSLog - <WOWorkerThread id=0 socket=null> Workerthread exiting due to error, respawning with ID 10000...
> Exception in thread "WorkerThread0" com.webobjects.foundation.NSForwardException [java.lang.OutOfMemoryError] Java heap space:java.lang.OutOfMemoryError: Java heap space
>
> ========================================
>
> Message du : 11/05/2011
> De : "Susanne Schneider " <email@hidden>
> A : email@hidden
> Copie à : email@hidden
> Sujet : Re: Fetching on 2 EOMODELS using different schema in DATABASE with but have relationship
>
>
>
> Hi,
>
> at least in Oracle it should be possible if you
>
> 1) qualify the table name with the schema name, e.g. "b.individu"
> 2) allow the user of the separate schemes to select the tables from the
> other schemes.
>
> If you have static (not changing) models, you can achieve the first by
> adding the scheme names to the table names in your EOModel. WO will then
> use the full qualified table names to build the fetch specification. For
> the second you have to extend your initial SQL-generation script.
>
> HTH,
> Susanne
>
> >
> > Message: 3
> > Date: Tue, 10 May 2011 10:36:49 -0700
> > From: Chuck Hill
> > Subject: Re: Fetching on 2 EOMODELS using different schema in DATABASE
> > with but have relationship
> > To: email@hidden
> > Cc: WebObjects webobjects-dev
> > Message-ID:
> > Content-Type: text/plain; charset="us-ascii"
> >
> > I think this is something that EOF can't do: qualify across schemas (databases in EOF's view).
> >
> > Chuck
> >
> > On May 10, 2011, at 4:49 AM, email@hidden wrote:
> >
> >> Hi all,
> >>
> >> I have 2 models using different schema of a database. but these schemas have table which have relationship. So in my model "A", I use a fetch spec. on a table which have the maximum relation with tables in model "A" and "B".
> >> So when I excute my fech spec, WO don't see the schema of model A and show exception ORA-00942 : table or view does not exist. This a the querry generate by WO on fetching :
> >>
> >> "SELECT t0.ANC_UV_OUVERTE_ID, t0.CATEG_ID, t0.CRE_DATE, t0.DIPL_SPEC_$C, t0.DIPLOME_$C, t0.MAJ_AUTEUR, t0.MAJ_DATE, t0.NLE_UV_OUVERTE_ID, t0.UV_CREDITS_ECTS, t0.UV_OUV_ID FROM UV_OUVERTES t0, INDIVIDU T4, UV_OUV T1, ETU_INSCR_ADM T3, DIPLOME T2 WHERE ((T1.AN_UNIV like ? ESCAPE '\' AND T1.PRD_UNIV like ? ESCAPE '\') OR t0.DIPLOME_$C like ? ESCAPE '\' OR T3.NIVEAU_ADM = ? OR T1.UV_OUV_ID = ?) AND T3.CONSEILLER_ID = T4.INDIV_ID AND t0.UV_OUV_ID = T1.UV_OUV_ID AND T2.DIPLOME_$C = T3.DIPLOME_$C AND t0.DIPLOME_$C = T2.DIPLOME_$C ORDER BY T4.NOM ASC, T4.PRENOM ASC" withBindings: 1:"2005"(anUniv), 2:"1A"(prdUniv), 3:"ING2"(diplomec), 4:"1"(niveauAdm), 5:131(uvOuvId)>"
> >>
> >> tables INDIVIDU, ETU_INSCR_ADM and DIPLOME are table of schema B but WO can't translate it like that i.e : A.INDIVIDU or A.ETU_INSCR_ADM.
> >>
> >> Thanks for your help
> >>
> >> PS : I have a storedProcedure which return data and do the same request but I don't know how to insert it in my code and binding it with WODisplayGroup for batch view (previous, next) with 10 students per batch.
> >> _______________________________________________
> >> Do not post admin requests to the list. They will be ignored.
> >> Webobjects-dev mailing list (email@hidden)
> >> Help/Unsubscribe/Update your Subscription:
> >>
> >> This email sent to email@hidden
> >
>
> --
> Susanne Schneider
> Coordinator secuTrial Development
>
> iAS interActive Systems GmbH
> Dieffenbachstraße 33 c, D-10967 Berlin
>
> fon +49(0)30 22 50 50 - 498
> fax +49(0)30 22 50 50 - 451
> mail email@hidden
> web http://www.interActive-Systems.de
>
> ----------------------------------------------------
> Geschäftsführer: Dr. Marko Reschke, Thomas Fritzsche
> Sitz der Gesellschaft: Berlin
> Amtsgericht Berlin Charlottenburg, HRB 106103B
> ----------------------------------------------------
>
>
> _______________________________________________
> Do not post admin requests to the list. They will be ignored.
> Webobjects-dev mailing list (email@hidden)
> Help/Unsubscribe/Update your Subscription:
>
> This email sent to email@hidden
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden