Problem Solved

Commenting out this code fixed the problem. 

        p.put("movieDatabaseUnmanaged", "new://Resource?type=DataSource");
        p.put("movieDatabaseUnmanaged.JdbcDriver", "org.hsqldb.jdbcDriver");
        p.put("movieDatabaseUnmanaged.JdbcUrl", "jdbc:hsqldb:mem:moviedb");
        p.put("movieDatabaseUnmanaged.JtaManaged", "false"); 

It seems that <non-jta-data-source> and <jta-data-source> must use to the
same JdbcDriver. I was using hsqldb for <non-jta-data-source> and mysql for
<jta-data-source>.


aglabek wrote:
> 
> I was wondering if anyone ran into the following problem. I get this error
> when running an OpenEJB example against MySQL database 5.0. OpenJPA is
> trying to update the schema by creating a table for the persistent Movie
> bean. MySQL allows for the "TYPE=innodb" expression, but the MappingTool
> does not seem to like it.
> 
> CODE:
> 
>  Properties p = new Properties();
>         p.put(Context.INITIAL_CONTEXT_FACTORY,
> "org.apache.openejb.client.LocalInitialContextFactory");
>         p.put("movieDatabase", "new://Resource?type=DataSource");
>         p.put("movieDatabase.JdbcDriver", "com.mysql.jdbc.Driver");
>         p.put("movieDatabase.JdbcUrl",
> "jdbc:mysql://localhost:3306/test");
>         p.put("movieDatabase.Username", "root");
> 
>         p.put("movieDatabaseUnmanaged", "new://Resource?type=DataSource");
>         p.put("movieDatabaseUnmanaged.JdbcDriver",
> "org.hsqldb.jdbcDriver");
>         p.put("movieDatabaseUnmanaged.JdbcUrl",
> "jdbc:hsqldb:mem:moviedb");
>         p.put("movieDatabaseUnmanaged.JtaManaged", "false");
> 
>         Context context = new InitialContext(p);
> 
>         Movies movies = (Movies)
> context.lookup("ejbexamples/MoviesBusinessLocal");
> 
> PART OF CONSOLE OUTPUT:
> 
> 1010  movie-unit  INFO   [main] openjpa.Runtime - Starting OpenJPA 1.2.0
> 1183  movie-unit  INFO   [main] openjpa.jdbc.JDBC - Using dictionary class
> "org.apache.openjpa.jdbc.sql.MySQLDictionary".
> 
> STACK TRACE:
> 
> <openjpa-1.2.0-r422266:683325 nonfatal general error>
> org.apache.openjpa.persistence.PersistenceException: Unexpected token:
> TYPE in statement [TYPE] {stmnt 26743246 CREATE TABLE Movie (id BIGINT NOT
> NULL, director VARCHAR(255), title VARCHAR(255), year INTEGER, PRIMARY KEY
> (id)) TYPE = innodb} [code=-11, state=37000]
>       at org.apache.openjpa.jdbc.meta.MappingTool.record(MappingTool.java:553)
>       at org.apache.openjpa.jdbc.meta.MappingTool.record(MappingTool.java:453)
>       at
> org.apache.openjpa.jdbc.kernel.JDBCBrokerFactory.synchronizeMappings(JDBCBrokerFactory.java:159)
>       at
> org.apache.openjpa.jdbc.kernel.JDBCBrokerFactory.newBrokerImpl(JDBCBrokerFactory.java:119)
>       at
> org.apache.openjpa.kernel.AbstractBrokerFactory.newBroker(AbstractBrokerFactory.java:189)
>       at
> org.apache.openjpa.kernel.DelegatingBrokerFactory.newBroker(DelegatingBrokerFactory.java:142)
>       at
> org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:192)
>       at
> org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:56)
>       at
> org.apache.openejb.core.stateful.StatefulContainer.createEntityManagers(StatefulContainer.java:710)
>       at
> org.apache.openejb.core.stateful.StatefulContainer.createEJBObject(StatefulContainer.java:283)
>       at
> org.apache.openejb.core.stateful.StatefulContainer.invoke(StatefulContainer.java:263)
>       at
> org.apache.openejb.core.ivm.EjbHomeProxyHandler.create(EjbHomeProxyHandler.java:270)
>       at
> org.apache.openejb.core.ivm.EjbHomeProxyHandler._invoke(EjbHomeProxyHandler.java:161)
>       at
> org.apache.openejb.core.ivm.BaseEjbProxyHandler.invoke(BaseEjbProxyHandler.java:286)
>       at $Proxy38.create(Unknown Source)
>       at
> org.apache.openejb.core.ivm.naming.BusinessLocalReference.getObject(BusinessLocalReference.java:33)
>       at
> org.apache.openejb.core.ivm.naming.IvmContext.lookup(IvmContext.java:150)
>       at
> org.apache.openejb.core.ivm.naming.ContextWrapper.lookup(ContextWrapper.java:115)
>       at javax.naming.InitialContext.lookup(InitialContext.java:351)
>       at example3.MoviesTest.test(MoviesTest.java:34)
>       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>       at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>       at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>       at java.lang.reflect.Method.invoke(Method.java:585)
>       at junit.framework.TestCase.runTest(TestCase.java:154)
>       at junit.framework.TestCase.runBare(TestCase.java:127)
>       at junit.framework.TestResult$1.protect(TestResult.java:106)
>       at junit.framework.TestResult.runProtected(TestResult.java:124)
>       at junit.framework.TestResult.run(TestResult.java:109)
>       at junit.framework.TestCase.run(TestCase.java:118)
>       at junit.framework.TestSuite.runTest(TestSuite.java:208)
>       at junit.framework.TestSuite.run(TestSuite.java:203)
>       at
> org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130)
>       at
> org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
>       at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
>       at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
>       at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
>       at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
> Caused by: org.apache.openjpa.lib.jdbc.ReportingSQLException: Unexpected
> token: TYPE in statement [TYPE] {stmnt 26743246 CREATE TABLE Movie (id
> BIGINT NOT NULL, director VARCHAR(255), title VARCHAR(255), year INTEGER,
> PRIMARY KEY (id)) TYPE = innodb} [code=-11, state=37000]
>       at
> org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.wrap(LoggingConnectionDecorator.java:192)
>       at
> org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.access$700(LoggingConnectionDecorator.java:57)
>       at
> org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator$LoggingConnection$LoggingStatement.executeUpdate(LoggingConnectionDecorator.java:762)
>       at
> org.apache.openjpa.lib.jdbc.DelegatingStatement.executeUpdate(DelegatingStatement.java:114)
>       at
> org.apache.openjpa.jdbc.schema.SchemaTool.executeSQL(SchemaTool.java:1191)
>       at
> org.apache.openjpa.jdbc.schema.SchemaTool.createTable(SchemaTool.java:949)
>       at org.apache.openjpa.jdbc.schema.SchemaTool.add(SchemaTool.java:526)
>       at org.apache.openjpa.jdbc.schema.SchemaTool.add(SchemaTool.java:344)
>       at org.apache.openjpa.jdbc.schema.SchemaTool.run(SchemaTool.java:321)
>       at org.apache.openjpa.jdbc.meta.MappingTool.record(MappingTool.java:501)
>       ... 37 more
> 
> 

-- 
View this message in context: 
http://n2.nabble.com/MySQL-Unexpected-token%3A-TYPE-tp2249870p2251717.html
Sent from the OpenJPA Users mailing list archive at Nabble.com.

Reply via email to