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"));