[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
| [eclipselink-dev] Re: [eclipselink-users] Problem with	Multipletables in eclispelink. | 
Hi Development team,
      I am able to resolve the following
problem by commenting the following part of the
initializeMultipleTablePrimaryKeyFields method in ClassDescriptor file
of eclipselink source code.   Could you please let me know
why the following portion is giving the problem by generating 
unnecessary joins to the generated query.. You can find the runtime
xmls and table creation scripts in the previous mail to user
group.   Please let me know commenting the following code
will give any problems.. 
 /*else {
               
// If the user has specified a custom multiple table join then we do
not assume that the secondary tables have identically named pk as the
primary table.
               
// No additional fk info was specified so assume the pk field(s) are
the named the same in the additional table.
               
Map newKeyMapping = new HashMap(getPrimaryKeyFields().size() + 1);
               
getAdditionalTablePrimaryKeyFields().put(table, newKeyMapping);
               
// For each primary key field in the primary table, add a pk
relationship from the primary table's pk field to the assumed
identically named secondary pk field.
               
List primaryKeyFields = getPrimaryKeyFields();
               
for (int pkIndex = 0; pkIndex < primaryKeyFields.size(); pkIndex++) {
                   
DatabaseField primaryKeyField =
(DatabaseField)primaryKeyFields.get(pkIndex);
                   
DatabaseField secondaryKeyField =
(DatabaseField)primaryKeyField.clone();
                   
secondaryKeyField.setTable(table);
                   
newKeyMapping.put(primaryKeyField, secondaryKeyField);
                   
// Must add this field to read, so translations work on database row.
                   
getFields().addElement(secondaryKeyField);
                   
if (!getQueryManager().hasCustomMultipleTableJoinExpression()) {
                       
_expression_ keyJoinExpression =
builder.getField(secondaryKeyField).equal(builder.getField(primaryKeyField));
                       
joinExpression = keyJoinExpression.and(joinExpression);
                       
getQueryManager().getTablesJoinExpressions().put(table,
keyJoinExpression);
                       
if(isChild) {
                           
getInheritancePolicy().addChildTableJoinExpressionToAllParents(table,
keyJoinExpression);
                       
}
                    }
                }
            }*/
On 9/16/08, Balakrishna <balakrishna.mca@xxxxxxxxx> wrote:
  I am trying to migrate sample application from toplink to eclipselink..   I
 am able to migration most of them successfully.. But When view having
 references to multiple tables, iam facing problem with invalid identifier
 problem.. I am attaching the runtime xml and table creation scripts which
 will help to understand and recreate the problem..
 
 Please help me to resolve this problem.
 
 Error in findTroubleTicket ...Order.TroubleTicketSearchResult failed with
 exception: Error invoking DAS.count() in das for class:
 abc.display.search.TroubleTicketSearchResultLocal Exception Stack:
 Exception [EclipseLink-4002] (Eclipse Persistence Services - 1.0 (Build 1.0
 - 20080707)): org.eclipse.persistence.exceptions.DatabaseException
 Internal Exception: java.sql.SQLException: ORA-00904: "T1"."TRBL_TKT_OID":
 invalid identifier
 
 Error Code: 904
 Call: SELECT COUNT(*) FROM TRBL_TKT_PRIORITY_LEVEL_CD t3, TRBL_TKT_CATGRY_CD
 t2, ROOT t1, TRBL_TKT_VIEW t0 WHERE (((((((t0.TRBL_TKT_TRBL_TKT_ID LIKE ?)
 AND (t0.TRBL_TKT_STATUS_CD = ?)) AND (t0.TRBL_TKT_ROOT_OID = ?)) AND
 (t0.TRBL_TKT_CATGRY_CD = ?)) AND (t0.TRBL_TKT_PRIORITY_LEVEL_CD = ?)) AND
 (t0.ROOT_OWNING_ENTITY_ID IN (?, ?))) AND ((t3.TRBL_TKT_OID =
 t0.TRBL_TKT_OID) AND ((t2.TRBL_TKT_OID = t0.TRBL_TKT_OID) AND
 (t1.TRBL_TKT_OID = t0.TRBL_TKT_OID))))
    bind => [1000172%, 1, 1000644, 1000080, 1000020, OwningEntity1,
 InfinysEnterpriseOwningEntity]
 Query: ReportQuery(abc.display.search.TroubleTicketSearchResult)
    at
 org.eclipse.persistence.exceptions.DatabaseException.sqlException(DatabaseException.java:322)
    at
 org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.basicExecuteCall(DatabaseAccessor.java:646)
    at
 org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.executeCall(DatabaseAccessor.java:500)
    at
 org.eclipse.persistence.sessions.server.ServerSession.executeCall(ServerSession.java:522)
    at
 org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeCall(DatasourceCallQueryMechanism.java:204)
    at
 org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeCall(DatasourceCallQueryMechanism.java:190)
    at
 org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeSelectCall(DatasourceCallQueryMechanism.java:261)
    at
 org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.selectAllRows(DatasourceCallQueryMechanism.java:594)
    at
 org.eclipse.persistence.internal.queries.ExpressionQueryMechanism.selectAllRowsFromTable(ExpressionQueryMechanism.java:2505)
    at
 org.eclipse.persistence.internal.queries.ExpressionQueryMechanism.selectAllReportQueryRows(ExpressionQueryMechanism.java:2450)
    at
 org.eclipse.persistence.queries.ReportQuery.executeDatabaseQuery(ReportQuery.java:821)
    at
 org.eclipse.persistence.queries.DatabaseQuery.execute(DatabaseQuery.java:666)
    at
 org.eclipse.persistence.queries.ObjectLevelReadQuery.execute(ObjectLevelReadQuery.java:844)
    at
 org.eclipse.persistence.queries.ReadAllQuery.execute(ReadAllQuery.java:456)
    at
 org.eclipse.persistence.queries.ObjectLevelReadQuery.executeInUnitOfWork(ObjectLevelReadQuery.java:906)
    at
 org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.internalExecuteQuery(UnitOfWorkImpl.java:2588)
    at
 org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1178)
    at
 org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1162)
    at
 org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1108)
  **********************************************************
    at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:589)
    at
 weblogic.rmi.cluster.ClusterableServerRef.invoke(ClusterableServerRef.java:224)
    at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:479)
    at
 weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
    at weblogic.security.service.SecurityManager.runAs(Unknown Source)
    at
 weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:475)
    at
 weblogic.rmi.internal.BasicServerRef.access$300(BasicServerRef.java:59)
    at
 weblogic.rmi.internal.BasicServerRef$BasicExecuteRequest.run(BasicServerRef.java:1016)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:200)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:172)
 Caused by: java.sql.SQLException: ORA-00904: "T1"."TRBL_TKT_OID": invalid
 identifier
 
    http://www.nabble.com/file/p19514631/search.xml search.xml
 http://www.nabble.com/file/p19514631/TableCreation.txt TableCreation.txt
 http://www.nabble.com/file/p19514631/Doc3.doc Doc3.doc
 
--
 View this message in context: http://www.nabble.com/Problem-with-Multipletables-in-eclispelink.-tp19514631p19514631.html
 Sent from the EclipseLink - Users mailing list archive at Nabble.com.
 
 _______________________________________________
 eclipselink-users mailing list
 eclipselink-users@xxxxxxxxxxx
 https://dev.eclipse.org/mailman/listinfo/eclipselink-users