assertEquals(0, raQuery.getDistinctState()); // Make sure this is 0 so ECL needs to determine if DISTINCT should be used
List resultSet = (List) session.executeQuery(raQuery);
assertNotNull(resultSet);
assertNotEquals(0, resultSet.size());
ECL295EntB entB_find = (ECL295EntB) resultSet.get(0);
assertNotNull(entB_find);
// The next statement should demonstrate bug #295556
boolean containsTarget = entB_find.getEntACollection().containsKey("EntA-1");
assertTrue(containsTarget);
assertEquals(10, entB_find.getEntACollection().size());
Local Exception Stack:
Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.5.0.v20130507-3faac2b): org.eclipse.persistence.exceptions.DatabaseException
Internal Exception: java.sql.SQLSyntaxErrorException: ORA-00932: inconsistent datatypes: expected - got CLOB
Error Code: 932
Call: SELECT DISTINCT t1.ID, t1.STRDATA, t0.ID, t0.STRDATA, t0.STRINGVALUE FROM ECL295ENTA t0, ECLENTA_ENTB t2, ECL295ENTB t1 WHERE ((t2.ECL295EntB_ID = t1.ID) AND (t0.ID = t2.entACollection_ID))
Query: ReadAllQuery(referenceClass=ECL295EntB sql="SELECT DISTINCT t1.ID, t1.STRDATA, t0.ID, t0.STRDATA, t0.STRINGVALUE FROM ECL295ENTA t0, ECLENTA_ENTB t2, ECL295ENTB t1 WHERE ((t2.ECL295EntB_ID = t1.ID) AND (t0.ID = t2.entACollection_ID))")
at org.eclipse.persistence.exceptions.DatabaseException.sqlException(DatabaseException.java:340)
at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.basicExecuteCall(DatabaseAccessor.java:679)
at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.executeCall(DatabaseAccessor.java:558)
at org.eclipse.persistence.internal.sessions.AbstractSession.basicExecuteCall(AbstractSession.java:1995)
at org.eclipse.persistence.sessions.server.ServerSession.executeCall(ServerSession.java:570)
at org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeCall(DatasourceCallQueryMechanism.java:242)
at org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeCall(DatasourceCallQueryMechanism.java:228)
at org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeSelectCall(DatasourceCallQueryMechanism.java:299)
at org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.selectAllRows(DatasourceCallQueryMechanism.java:694)
at org.eclipse.persistence.internal.queries.ExpressionQueryMechanism.selectAllRowsFromTable(ExpressionQueryMechanism.java:2714)
at org.eclipse.persistence.internal.queries.ExpressionQueryMechanism.selectAllRows(ExpressionQueryMechanism.java:2667)
at org.eclipse.persistence.queries.ReadAllQuery.executeObjectLevelReadQuery(ReadAllQuery.java:477)
at org.eclipse.persistence.queries.ObjectLevelReadQuery.executeDatabaseQuery(ObjectLevelReadQuery.java:1155)
at org.eclipse.persistence.queries.DatabaseQuery.execute(DatabaseQuery.java:899)
at org.eclipse.persistence.queries.ObjectLevelReadQuery.execute(ObjectLevelReadQuery.java:1114)
at org.eclipse.persistence.queries.ReadAllQuery.execute(ReadAllQuery.java:402)
at org.eclipse.persistence.queries.ObjectLevelReadQuery.executeInUnitOfWork(ObjectLevelReadQuery.java:1202)
at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.internalExecuteQuery(UnitOfWorkImpl.java:2894)
at org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1797)
at org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1779)
at org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1730)
at ecl.d295556.test.TestD295556.test003(TestD295556.java:143)
Caused by: java.sql.SQLSyntaxErrorException: ORA-00932: inconsistent datatypes: expected - got CLOB
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:450)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:399)
at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:1017)
at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:655)
at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:249)
at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:566)
at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:215)
at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:58)
at oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:776)
at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:897)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1034)
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3820)
at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3867)
at oracle.jdbc.driver.OraclePreparedStatementWrapper.executeQuery(OraclePreparedStatementWrapper.java:1502)
at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.executeSelect(DatabaseAccessor.java:1002)
at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.basicExecuteCall(DatabaseAccessor.java:641)
... 45 more
[EL Info]: 2014-09-08 13:05:15.033--ServerSession(1433925045)--EclipseLink, version: Eclipse Persistence Services - 2.5.0.v20130507-3faac2b
[EL Info]: connection: 2014-09-08 13:05:16.568--ServerSession(1433925045)--testpu login successful
[EL Fine]: sql: 2014-09-08 13:05:16.585--ServerSession(1433925045)--Connection(565238012)--SELECT ID FROM ECL295ENTA WHERE ID <> ID
[EL Fine]: sql: 2014-09-08 13:05:16.79--ServerSession(1433925045)--Connection(565238012)--SELECT ID FROM ECL295ENTB WHERE ID <> ID
[EL Fine]: sql: 2014-09-08 13:05:16.842--ServerSession(1433925045)--Connection(565238012)--SELECT entACollection_ID FROM ECLENTA_ENTB WHERE entACollection_ID <> entACollection_ID
[EL Fine]: sql: 2014-09-08 13:05:16.934--ServerSession(1433925045)--Connection(565238012)--SELECT DISTINCT t1.ID, t1.STRDATA, t0.ID, t0.STRDATA, t0.STRINGVALUE FROM ECL295ENTA t0, ECLENTA_ENTB t2, ECL295ENTB t1 WHERE ((t2.ECL295EntB_ID = t1.ID) AND (t0.ID = t2.entACollection_ID))
[EL Fine]: sql: 2014-09-08 13:05:17.041--ServerSession(1433925045)--SELECT 1 FROM DUAL
[EL Warning]: 2014-09-08 13:05:17.094--UnitOfWork(179265569)--Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.5.0.v20130507-3faac2b): org.eclipse.persistence.exceptions.DatabaseException
Internal Exception: java.sql.SQLSyntaxErrorException: ORA-00932: inconsistent datatypes: expected - got CLOB
Error Code: 932
Call: SELECT DISTINCT t1.ID, t1.STRDATA, t0.ID, t0.STRDATA, t0.STRINGVALUE FROM ECL295ENTA t0, ECLENTA_ENTB t2, ECL295ENTB t1 WHERE ((t2.ECL295EntB_ID = t1.ID) AND (t0.ID = t2.entACollection_ID))
Query: ReadAllQuery(referenceClass=ECL295EntB sql="SELECT DISTINCT t1.ID, t1.STRDATA, t0.ID, t0.STRDATA, t0.STRINGVALUE FROM ECL295ENTA t0, ECLENTA_ENTB t2, ECL295ENTB t1 WHERE ((t2.ECL295EntB_ID = t1.ID) AND (t0.ID = t2.entACollection_ID))")
raQuery.addJoinedAttribute(query.getExpressionBuilder().anyOf("entACollection"));