persistence@glassfish.java.net

Re: MySQL and entity-persistence-tests failures?

From: Marina Vatkina <Marina.Vatkina_at_Sun.COM>
Date: Fri, 09 Mar 2007 15:00:05 -0800

Tom,

Our SQE team has been running their tests against MySQL on all major builds, so
there should be no big surprises.

-marina

Tom Ware wrote:
> Hi,
>
> I suspect we should do some more JPA testing on MySQL and make some
> updates to the Platform. The reason some platforms have issues is that
> the platforms were part of the original TopLink code and were initially
> tested prior to the JPA implementation. Not all of these platforms have
> yet been cerified on JPA - and as a result some of the extensions we
> made to implement JPA may not have been fully tested on those platforms.
>
> I suggest you enter a bug for the issues you are seeing on MySQL. I
> beleive MySQL should be one of the platforms we certify on fairly soon
> due to its popularity.
>
> -Tom
>
> Michael Bouschen wrote:
>
>> Hi Wonseok,
>>
>> I see a lot of failures come from JPQL queries using the TRIM
>> function. It looks like we have to double check what kind of TRIM
>> support MySQL provides and maybe we need to adapt the MySQL database
>> platform accordingly. What do you think?
>>
>> Regards Michael
>>
>>
>>> Hi Tom, Michael, and others
>>>
>>> I'm trying to run latest entity-persistence-tests on MySQL database,
>>> but I'm having problems like below. Is this known issue?
>>>
>>> MySQL version: 5.0.24a, Driver: Connector/J 5.0.5
>>>
>>> test:
>>> [echo] Running test with mysql.properties on
>>> jdbc:mysql://localhost/test
>>> [junit] Running
>>> oracle.toplink.essentials.testing.tests.FullRegressionTestSuite
>>> [junit] Internal Exception:
>>> com.mysql.jdbc.exceptions.MySQLSyntaxErrorException : You have an
>>> error in your SQL syntax; check the manual that corresponds to your
>>> MySQL server version for the right syntax to use near ' 'M') =
>>> 'anotick')' at line 1Error Code: 1064
>>> [junit] Call:SELECT CUST_ID, NAME, CUST_VERSION, CITY FROM
>>> CMP3_CUSTOMER WHERE (LTRIM(CITY, ?) = ?)
>>> [junit] bind => [M, anotick]
>>> [junit]
>>> Query:ReadAllQuery(oracle.toplink.essentials.testing.models.cmp3.relationships.Customer))
>>>
>>> [junit] [TopLink Info]: 2007.03.09
>>> 09:00:34.042--ServerSession(32316171)--TopLink, version: Oracle
>>> TopLink Essentials - 2.0 (Build SNAPSHOT (03/09/2007))
>>> [junit] [TopLink Info]: 2007.03.09
>>> 09:00:34.068--ServerSession(4212068)--TopLink, version: Oracle
>>> TopLink Essentials - 2.0 (Build SNAPSHOT (03/09/2007))
>>> [junit] Internal Exception:
>>> com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: You have an
>>> error in your SQL syntax; check the manual that corresponds to your
>>> MySQL server version for the right syntax to use near ' 'M') =
>>> 'anotick')' at line 1Error Code: 1064
>>> [junit] Call:SELECT CUST_ID, CITY, NAME, CUST_VERSION FROM
>>> CMP3_FIELDACCESS_CUSTOMER WHERE (LTRIM(CITY, ?) = ?)
>>> [junit] bind => [M, anotick]
>>> [junit]
>>> Query:ReadAllQuery(oracle.toplink.essentials.testing.models.cmp3.fieldaccess.relationships.Customer
>>> ))
>>> [junit] Internal Exception:
>>> com.mysql.jdbc.exceptions.MySQLIntegrityConstraintViolationException:
>>> Duplicate entry '518' for key 1Error Code: 1062
>>> [junit] Call:INSERT INTO TL_CMP3_EMPLOYEE (EMP_ID, VERSION,
>>> F_NAME) SELECT t2.EMP_ID, (t0.VERSION + ?), ? FROM CMP3_SALARY t3,
>>> CMP3_EMPLOYEE t2, CMP3_SALARY t1, CMP3_EMPLOYEE t0 WHERE (((t2.F_NAME
>>> = ?) AND (t3.EMP_ID = t2.EMP_ID)) AND (t1.EMP_ID = t0.EMP_ID))
>>> [junit] bind => [1, CHANGED, Bob]
>>> [junit] Query:UpdateAllQuery())
>>> [junit] Tests run: 612, Failures: 7, Errors: 3, Time elapsed:
>>> 36.15 sec
>>> [junit] Test
>>> oracle.toplink.essentials.testing.tests.FullRegressionTestSuite FAILED
>>>
>>> Testsuite:
>>> oracle.toplink.essentials.testing.tests.FullRegressionTestSuite
>>> Tests run: 612, Failures: 7, Errors: 3, Time elapsed: 36.15 sec
>>> ------------- Standard Output ---------------
>>> [TopLink Info]: 2007.03.09 09:00:34.068--ServerSession
>>> (4212068)--TopLink, version: Oracle TopLink Essentials - 2.0 (Build
>>> SNAPSHOT (03/09/2007))
>>> ------------- ---------------- ---------------
>>>
>>> Testcase: testPersistRemoved took 0.371 sec
>>> FAILED
>>> i=10: Transaction secondFlush RolledBack employeeReadFromCache ==
>>> null; employeeReadFromDB == null; i=16: firstFlush secondFlush
>>> thirdFlush RolledBack employeeReadFromDB != null; i=20: firstFlush
>>> thirdFlush RolledBack employeeReadFromDB != null; i=22: firstFlush
>>> RolledBack employeeReadFromDB != null; i=24: secondFlush thirdFlush
>>> RolledBack employeeReadFromDB != null; i=28: thirdFlush RolledBack
>>> employeeReadFromDB != null;
>>> junit.framework.AssertionFailedError: i=10: Transaction secondFlush
>>> RolledBack employeeReadFromCache == null; employeeReadFromDB ==
>>> null; i=16: firstFlush secondFlush thirdFlush RolledBack
>>> employeeReadFromDB != null; i=20: firstFlush thirdFlush RolledBack
>>> employeeReadFromDB != null; i=22: firstFlush RolledBack
>>> employeeReadFromDB != null; i=24: secondFlush thirdFlush RolledBack
>>> employeeReadFromDB != null; i=28: thirdFlush RolledBack
>>> employeeReadFromDB != null;
>>> at
>>> oracle.toplink.essentials.testing.tests.cmp3.advanced.EntityManagerJUnitTestSuite.testPersistRemoved(EntityManagerJUnitTestSuite.java:849)
>>>
>>> at junit.extensions.TestDecorator.basicRun(TestDecorator.java:22)
>>> at junit.extensions.TestSetup$1.protect(TestSetup.java:19)
>>> at junit.extensions.TestSetup.run(TestSetup.java:23)
>>>
>>> Testcase: testExtendedPersistenceContext took 0.085 sec
>>> FAILED
>>> empNew is in the db after the third transaction rolled back
>>> junit.framework.AssertionFailedError: empNew is in the db after the
>>> third transaction rolled back
>>> at
>>> oracle.toplink.essentials.testing.tests.cmp3.advanced.EntityManagerJUnitTestSuite.testExtendedPersistenceContext
>>> (EntityManagerJUnitTestSuite.java:1466)
>>> at junit.extensions.TestDecorator.basicRun(TestDecorator.java:22)
>>> at junit.extensions.TestSetup$1.protect(TestSetup.java:19)
>>> at junit.extensions.TestSetup.run(TestSetup.java :23)
>>>
>>> Testcase: unknown took 0 sec
>>> FAILED
>>> Warning, RAW type used for Primary keys only supported on Oracle
>>> junit.framework.AssertionFailedError: Warning, RAW type used for
>>> Primary keys only supported on Oracle
>>> at
>>> oracle.toplink.essentials.testing.tests.cmp3.datatypes.arraypks.PrimitiveArrayPKCachingJUnitTestCase$1.setUp(PrimitiveArrayPKCachingJUnitTestCase.java:46)
>>>
>>> at junit.extensions.TestSetup$1.protect(TestSetup.java :18)
>>> at junit.extensions.TestSetup.run(TestSetup.java:23)
>>>
>>> Testcase: testLeftTrimWithTrimChar took 0.116 sec
>>> Caused an ERROR
>>>
>>> Internal Exception:
>>> com.mysql.jdbc.exceptions.MySQLSyntaxErrorException : You have an
>>> error in your SQL syntax; check the manual that corresponds to your
>>> MySQL server version for the right syntax to use near ' 'M') =
>>> 'anotick')' at line 1Error Code: 1064
>>> Call:SELECT CUST_ID, NAME, CUST_VERSION, CITY FROM CMP3_CUSTOMER
>>> WHERE (LTRIM(CITY, ?) = ?)
>>> bind => [M, anotick]
>>> Query:ReadAllQuery(oracle.toplink.essentials.testing.models.cmp3.relationships.Customer)
>>>
>>> Local Exception Stack:
>>> Exception [TOPLINK-4002] (Oracle TopLink Essentials - 2.0 (Build
>>> SNAPSHOT (03/09/2007))):
>>> oracle.toplink.essentials.exceptions.DatabaseException
>>> Internal Exception:
>>> com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: You have an
>>> error in your SQL syntax; check the manual that corresponds to your
>>> MySQL server version for the right syntax to use near ' 'M') =
>>> 'anotick')' at line 1Error Code: 1064
>>> Call:SELECT CUST_ID, NAME, CUST_VERSION, CITY FROM CMP3_CUSTOMER
>>> WHERE (LTRIM(CITY, ?) = ?)
>>> bind => [M, anotick]
>>> Query:ReadAllQuery(oracle.toplink.essentials.testing.models.cmp3.relationships.Customer)
>>>
>>> at
>>> oracle.toplink.essentials.exceptions.DatabaseException.sqlException(DatabaseException.java:303)
>>>
>>> at
>>> oracle.toplink.essentials.internal.databaseaccess.DatabaseAccessor.basicExecuteCall(DatabaseAccessor.java:551)
>>>
>>> at
>>> oracle.toplink.essentials.internal.databaseaccess.DatabaseAccessor.executeCall(DatabaseAccessor.java:437)
>>>
>>> at
>>> oracle.toplink.essentials.threetier.ServerSession.executeCall(ServerSession.java:465)
>>>
>>> at
>>> oracle.toplink.essentials.internal.queryframework.DatasourceCallQueryMechanism.executeCall(DatasourceCallQueryMechanism.java:213)
>>>
>>> at
>>> oracle.toplink.essentials.internal.queryframework.DatasourceCallQueryMechanism.executeCall
>>> (DatasourceCallQueryMechanism.java:199)
>>> at
>>> oracle.toplink.essentials.internal.queryframework.DatasourceCallQueryMechanism.executeSelectCall(DatasourceCallQueryMechanism.java:270)
>>>
>>> at
>>> oracle.toplink.essentials.internal.queryframework.DatasourceCallQueryMechanism.selectAllRows
>>> (DatasourceCallQueryMechanism.java:600)
>>> at
>>> oracle.toplink.essentials.internal.queryframework.ExpressionQueryMechanism.selectAllRowsFromTable(ExpressionQueryMechanism.java:2217)
>>>
>>> at
>>> oracle.toplink.essentials.internal.queryframework.ExpressionQueryMechanism.selectAllRows
>>> (ExpressionQueryMechanism.java:2195)
>>> at
>>> oracle.toplink.essentials.queryframework.ReadAllQuery.executeObjectLevelReadQuery(ReadAllQuery.java:302)
>>>
>>> at
>>> oracle.toplink.essentials.queryframework.ObjectLevelReadQuery.executeDatabaseQuery
>>> (ObjectLevelReadQuery.java:709)
>>> at
>>> oracle.toplink.essentials.queryframework.DatabaseQuery.execute(DatabaseQuery.java:609)
>>>
>>> at
>>> oracle.toplink.essentials.queryframework.ObjectLevelReadQuery.execute(ObjectLevelReadQuery.java
>>> :677)
>>> at
>>> oracle.toplink.essentials.internal.sessions.AbstractSession.internalExecuteQuery(AbstractSession.java:1815)
>>>
>>> at
>>> oracle.toplink.essentials.internal.sessions.AbstractSession.executeQuery(AbstractSession.java
>>> :937)
>>> at
>>> oracle.toplink.essentials.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:894)
>>>
>>> at
>>> oracle.toplink.essentials.testing.tests.cmp3.relationships.ExpressionJUnitTestSuite.testLeftTrimWithTrimChar
>>> (ExpressionJUnitTestSuite.java:87)
>>> Caused by: com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: You
>>> have an error in your SQL syntax; check the manual that corresponds
>>> to your MySQL server version for the right syntax to use near ' 'M')
>>> = 'anotick')' at line 1
>>> at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:936)
>>> at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2941)
>>> at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1623)
>>> at com.mysql.jdbc.MysqlIO.sqlQueryDirect (MysqlIO.java:1715)
>>> at com.mysql.jdbc.Connection.execSQL(Connection.java:3249)
>>> at
>>> com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1268)
>>>
>>> at com.mysql.jdbc.PreparedStatement.executeQuery
>>> (PreparedStatement.java:1403)
>>> at
>>> oracle.toplink.essentials.internal.databaseaccess.DatabaseAccessor.executeSelect(DatabaseAccessor.java:711)
>>>
>>> at
>>> oracle.toplink.essentials.internal.databaseaccess.DatabaseAccessor.basicExecuteCall
>>> (DatabaseAccessor.java:486)
>>>
>>> Testcase: testLeftTrimWithTrimChar took 0.111 sec
>>> Caused an ERROR
>>>
>>> Internal Exception:
>>> com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: You have an
>>> error in your SQL syntax; check the manual that corresponds to your
>>> MySQL server version for the right syntax to use near ' 'M') =
>>> 'anotick')' at line 1Error Code: 1064
>>> Call:SELECT CUST_ID, CITY, NAME, CUST_VERSION FROM
>>> CMP3_FIELDACCESS_CUSTOMER WHERE (LTRIM(CITY, ?) = ?)
>>> bind => [M, anotick]
>>> Query:ReadAllQuery(oracle.toplink.essentials.testing.models.cmp3.fieldaccess.relationships.Customer
>>> )
>>> Local Exception Stack:
>>> Exception [TOPLINK-4002] (Oracle TopLink Essentials - 2.0 (Build
>>> SNAPSHOT (03/09/2007))):
>>> oracle.toplink.essentials.exceptions.DatabaseException
>>> Internal Exception:
>>> com.mysql.jdbc.exceptions.MySQLSyntaxErrorException : You have an
>>> error in your SQL syntax; check the manual that corresponds to your
>>> MySQL server version for the right syntax to use near ' 'M') =
>>> 'anotick')' at line 1Error Code: 1064
>>> Call:SELECT CUST_ID, CITY, NAME, CUST_VERSION FROM
>>> CMP3_FIELDACCESS_CUSTOMER WHERE (LTRIM(CITY, ?) = ?)
>>> bind => [M, anotick]
>>> Query:ReadAllQuery(oracle.toplink.essentials.testing.models.cmp3.fieldaccess.relationships.Customer)
>>>
>>> at
>>> oracle.toplink.essentials.exceptions.DatabaseException.sqlException(DatabaseException.java
>>> :303)
>>> at
>>> oracle.toplink.essentials.internal.databaseaccess.DatabaseAccessor.basicExecuteCall(DatabaseAccessor.java:551)
>>>
>>> at
>>> oracle.toplink.essentials.internal.databaseaccess.DatabaseAccessor.executeCall(DatabaseAccessor.java
>>> :437)
>>> at
>>> oracle.toplink.essentials.threetier.ServerSession.executeCall(ServerSession.java:465)
>>>
>>> at
>>> oracle.toplink.essentials.internal.queryframework.DatasourceCallQueryMechanism.executeCall(DatasourceCallQueryMechanism.java
>>> :213)
>>> at
>>> oracle.toplink.essentials.internal.queryframework.DatasourceCallQueryMechanism.executeCall(DatasourceCallQueryMechanism.java:199)
>>>
>>> at
>>> oracle.toplink.essentials.internal.queryframework.DatasourceCallQueryMechanism.executeSelectCall
>>> (DatasourceCallQueryMechanism.java:270)
>>> at
>>> oracle.toplink.essentials.internal.queryframework.DatasourceCallQueryMechanism.selectAllRows(DatasourceCallQueryMechanism.java:600)
>>>
>>> at
>>> oracle.toplink.essentials.internal.queryframework.ExpressionQueryMechanism.selectAllRowsFromTable
>>> (ExpressionQueryMechanism.java:2217)
>>> at
>>> oracle.toplink.essentials.internal.queryframework.ExpressionQueryMechanism.selectAllRows(ExpressionQueryMechanism.java:2195)
>>>
>>> at
>>> oracle.toplink.essentials.queryframework.ReadAllQuery.executeObjectLevelReadQuery
>>> (ReadAllQuery.java:302)
>>> at
>>> oracle.toplink.essentials.queryframework.ObjectLevelReadQuery.executeDatabaseQuery(ObjectLevelReadQuery.java:709)
>>>
>>> at oracle.toplink.essentials.queryframework.DatabaseQuery.execute(
>>> DatabaseQuery.java:609)
>>> at
>>> oracle.toplink.essentials.queryframework.ObjectLevelReadQuery.execute(ObjectLevelReadQuery.java:677)
>>>
>>> at
>>> oracle.toplink.essentials.internal.sessions.AbstractSession.internalExecuteQuery
>>> (AbstractSession.java:1815)
>>> at
>>> oracle.toplink.essentials.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:937)
>>>
>>> at
>>> oracle.toplink.essentials.internal.sessions.AbstractSession.executeQuery(AbstractSession.java
>>> :894)
>>> at
>>> oracle.toplink.essentials.testing.tests.cmp3.fieldaccess.relationships.ExpressionJUnitTestSuite.testLeftTrimWithTrimChar(ExpressionJUnitTestSuite.java:87)
>>>
>>> Caused by: com.mysql.jdbc.exceptions.MySQLSyntaxErrorException : You
>>> have an error in your SQL syntax; check the manual that corresponds
>>> to your MySQL server version for the right syntax to use near ' 'M')
>>> = 'anotick')' at line 1
>>> at com.mysql.jdbc.SQLError.createSQLException (SQLError.java:936)
>>> at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2941)
>>> at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1623)
>>> at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1715)
>>> at com.mysql.jdbc.Connection.execSQL(Connection.java:3249)
>>> at
>>> com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1268)
>>>
>>> at
>>> com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java
>>> :1403)
>>> at
>>> oracle.toplink.essentials.internal.databaseaccess.DatabaseAccessor.executeSelect(DatabaseAccessor.java:711)
>>>
>>> at
>>> oracle.toplink.essentials.internal.databaseaccess.DatabaseAccessor.basicExecuteCall(DatabaseAccessor.java
>>> :486)
>>>
>>> Testcase: testSelectPhoneNumberAreaCode took 0.004 sec
>>> FAILED
>>> SimpleSelectPhoneNumberAreaCode test failed !
>>> junit.framework.AssertionFailedError: SimpleSelectPhoneNumberAreaCode
>>> test failed !
>>> at
>>> oracle.toplink.essentials.testing.tests.ejb.ejbqltesting.JUnitEJBQLUnitTestSuite.testSelectPhoneNumberAreaCode(JUnitEJBQLUnitTestSuite.java:246)
>>>
>>> at junit.extensions.TestDecorator.basicRun(TestDecorator.java:22)
>>> at junit.extensions.TestSetup$1.protect(TestSetup.java:19)
>>> at junit.extensions.TestSetup.run(TestSetup.java:23)
>>>
>>> Testcase: testOrderByExpressionWithSelect took 0.005 sec
>>> FAILED
>>> OrderBy expression test failed: data validation error expected:<13>
>>> but was:<5>
>>> junit.framework.AssertionFailedError: OrderBy expression test failed:
>>> data validation error expected:<13> but was:<5>
>>> at
>>> oracle.toplink.essentials.testing.tests.ejb.ejbqltesting.JUnitEJBQLExamplesTestSuite.testOrderByExpressionWithSelect
>>> (JUnitEJBQLExamplesTestSuite.java:697)
>>> at junit.extensions.TestDecorator.basicRun(TestDecorator.java:22)
>>> at junit.extensions.TestSetup$1.protect(TestSetup.java:19)
>>> at junit.extensions.TestSetup.run(TestSetup.java :23)
>>>
>>> Testcase: testDeleteExpression took 0.003 sec
>>> Testcase: testComplexDeleteExpression took 0.004 sec
>>> FAILED
>>> Complex Delete Expression test failed: customer to delete not found
>>> expected:<1> but was:<0>
>>> junit.framework.AssertionFailedError: Complex Delete Expression test
>>> failed: customer to delete not found expected:<1> but was:<0>
>>> at
>>> oracle.toplink.essentials.testing.tests.ejb.ejbqltesting.JUnitEJBQLExamplesTestSuite.testComplexDeleteExpression
>>> (JUnitEJBQLExamplesTestSuite.java:731)
>>> at junit.extensions.TestDecorator.basicRun(TestDecorator.java:22)
>>> at junit.extensions.TestSetup$1.protect(TestSetup.java:19)
>>> at junit.extensions.TestSetup.run(TestSetup.java :23)
>>>
>>> Testcase: updateAllTest took 0.013 sec
>>> Testcase: namedQueryCloneTest took 0.004 sec
>>> FAILED
>>> Named query clone test failed: the first result should be 4
>>> expected:<3> but was:<4>
>>> junit.framework.AssertionFailedError : Named query clone test failed:
>>> the first result should be 4 expected:<3> but was:<4>
>>> at
>>> oracle.toplink.essentials.testing.tests.ejb.ejbqltesting.JUnitEJBQLExamplesTestSuite.namedQueryCloneTest(JUnitEJBQLExamplesTestSuite.java
>>> :840)
>>> at junit.extensions.TestDecorator.basicRun(TestDecorator.java:22)
>>> at junit.extensions.TestSetup$1.protect(TestSetup.java:19)
>>> at junit.extensions.TestSetup.run(TestSetup.java:23)
>>>
>>> Testcase: updateUnqualifiedAttributeInWhere took 0.568 sec
>>> Caused an ERROR
>>>
>>> Internal Exception:
>>> com.mysql.jdbc.exceptions.MySQLIntegrityConstraintViolationException:
>>> Duplicate entry '518' for key 1Error Code: 1062
>>> Call:INSERT INTO TL_CMP3_EMPLOYEE (EMP_ID, VERSION, F_NAME) SELECT
>>> t2.EMP_ID, (t0.VERSION + ?), ? FROM CMP3_SALARY t3, CMP3_EMPLOYEE t2,
>>> CMP3_SALARY t1, CMP3_EMPLOYEE t0 WHERE (((t2.F_NAME = ?) AND
>>> (t3.EMP_ID = t2.EMP_ID)) AND (t1.EMP_ID = t0.EMP_ID))
>>> bind => [1, CHANGED, Bob]
>>> Query:UpdateAllQuery()
>>> Local Exception Stack:
>>> Exception [TOPLINK-4002] (Oracle TopLink Essentials - 2.0 (Build
>>> SNAPSHOT (03/09/2007))):
>>> oracle.toplink.essentials.exceptions.DatabaseException
>>> Internal Exception:
>>> com.mysql.jdbc.exceptions.MySQLIntegrityConstraintViolationException:
>>> Duplicate entry '518' for key 1Error Code: 1062
>>> Call:INSERT INTO TL_CMP3_EMPLOYEE (EMP_ID, VERSION, F_NAME) SELECT
>>> t2.EMP_ID, (t0.VERSION + ?), ? FROM CMP3_SALARY t3, CMP3_EMPLOYEE t2,
>>> CMP3_SALARY t1, CMP3_EMPLOYEE t0 WHERE ((( t2.F_NAME = ?) AND
>>> (t3.EMP_ID = t2.EMP_ID)) AND (t1.EMP_ID = t0.EMP_ID))
>>> bind => [1, CHANGED, Bob]
>>> Query:UpdateAllQuery()
>>> at
>>> oracle.toplink.essentials.exceptions.DatabaseException.sqlException(DatabaseException.java
>>> :295)
>>> at
>>> oracle.toplink.essentials.internal.databaseaccess.DatabaseAccessor.executeDirectNoSelect(DatabaseAccessor.java:639)
>>>
>>> at
>>> oracle.toplink.essentials.internal.databaseaccess.DatabaseAccessor.executeNoSelect
>>> (DatabaseAccessor.java:688)
>>> at
>>> oracle.toplink.essentials.internal.databaseaccess.DatabaseAccessor.basicExecuteCall(DatabaseAccessor.java:477)
>>>
>>> at
>>> oracle.toplink.essentials.internal.databaseaccess.DatabaseAccessor.executeCall
>>> (DatabaseAccessor.java:437)
>>> at
>>> oracle.toplink.essentials.internal.sessions.AbstractSession.executeCall(AbstractSession.java:675)
>>>
>>> at
>>> oracle.toplink.essentials.internal.sessions.IsolatedClientSession.executeCall
>>> (IsolatedClientSession.java:135)
>>> at
>>> oracle.toplink.essentials.internal.queryframework.DatasourceCallQueryMechanism.executeCall(DatasourceCallQueryMechanism.java:213)
>>>
>>> at
>>> oracle.toplink.essentials.internal.queryframework.DatasourceCallQueryMechanism.updateAllUsingTempTables
>>> (DatasourceCallQueryMechanism.java:749)
>>> at
>>> oracle.toplink.essentials.internal.queryframework.DatasourceCallQueryMechanism.updateAll(DatasourceCallQueryMechanism.java:711)
>>>
>>> at
>>> oracle.toplink.essentials.queryframework.UpdateAllQuery.executeDatabaseQuery
>>> (UpdateAllQuery.java:165)
>>> at
>>> oracle.toplink.essentials.queryframework.DatabaseQuery.execute(DatabaseQuery.java:609)
>>>
>>> at
>>> oracle.toplink.essentials.queryframework.DatabaseQuery.executeInUnitOfWork(DatabaseQuery.java
>>> :536)
>>> at
>>> oracle.toplink.essentials.queryframework.ModifyAllQuery.executeInUnitOfWork(ModifyAllQuery.java:153)
>>>
>>> at
>>> oracle.toplink.essentials.internal.sessions.UnitOfWorkImpl.internalExecuteQuery(UnitOfWorkImpl.java
>>> :2219)
>>> at
>>> oracle.toplink.essentials.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:937)
>>>
>>> at
>>> oracle.toplink.essentials.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:909)
>>>
>>> at
>>> oracle.toplink.essentials.internal.ejb.cmp3.base.EJBQueryImpl.executeUpdate(EJBQueryImpl.java:372)
>>>
>>> at
>>> oracle.toplink.essentials.testing.tests.ejb.ejbqltesting.JUnitEJBQLModifyTestSuite.updateUnqualifiedAttributeInWhere
>>> (JUnitEJBQLModifyTestSuite.java:320)
>>> at junit.extensions.TestDecorator.basicRun(TestDecorator.java:22)
>>> at junit.extensions.TestSetup$1.protect(TestSetup.java:19)
>>> at junit.extensions.TestSetup.run(TestSetup.java :23)
>>> Caused by:
>>> com.mysql.jdbc.exceptions.MySQLIntegrityConstraintViolationException:
>>> Duplicate entry '518' for key 1
>>> at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:931)
>>> at com.mysql.jdbc.MysqlIO.checkErrorPacket (MysqlIO.java:2941)
>>> at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1623)
>>> at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1715)
>>> at com.mysql.jdbc.Connection.execSQL(Connection.java:3249)
>>> at
>>> com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1268)
>>>
>>> at
>>> com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1541)
>>>
>>> at com.mysql.jdbc.PreparedStatement.executeUpdate(
>>> PreparedStatement.java:1455)
>>> at
>>> com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1440)
>>>
>>> at
>>> oracle.toplink.essentials.internal.databaseaccess.DatabaseAccessor.executeDirectNoSelect(DatabaseAccessor.java
>>> :632)
>>>
>>>
>>>