[
https://issues.apache.org/jira/browse/OPENJPA-2407?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13701272#comment-13701272
]
Serdyn du Toit commented on OPENJPA-2407:
-----------------------------------------
yep, it works with OpenJpa version 1. I'm going to revert to using OpenJpa
version 1 so that I can move forward with my work. I'm not saying there's
something wrong with OpenJpa version 2 - I know with complex code like this the
most recent versions sometimes have small bugs (due to complexity and the
pervasiveness of changes) so usually with my past experience with Hibernate I
tended to use the previous version. That, and I don't need the latest JPA
stuff - what I do need is the MySql Cluster extensions to work since for
certain queries it bypasses communication with MySql and communicates directly
with the data nodes speeding things up (MySql Cluster is like MySql but it
allows sharding across data nodes and still allows you to transactions and I
think scales up linearly to 30 servers - awesome, though I'm only starting to
use it now). So in terms of that optimization, the communication of the data
nodes, the latest OpenJpa isn't really going to make much of a difference.
I'm changing the priority of this bug to "Minor" from "Mayor" as its no longer
blocking my work.
> Errors using MySql Cluster not present using HSqlDb (build-time enhancement
> and executing query)
> ------------------------------------------------------------------------------------------------
>
> Key: OPENJPA-2407
> URL: https://issues.apache.org/jira/browse/OPENJPA-2407
> Project: OpenJPA
> Issue Type: Bug
> Components: Enhance
> Affects Versions: 2.2.2
> Environment: Windows 8 using MySql Cluster
> Reporter: Serdyn du Toit
> Attachments: sandbox-mysqlc4.zip
>
>
> Hi,
> I'm seeing some problems when my persistence.xml is populated with details
> for MySql Cluster - but when I work against HSqlDb everything is working
> great.
> First issue during build-time enhancement:
> I get the following even though I don't have any @Embeddables in my code
> [openjpac] 407 testdb ERROR [main] openjpa.Enhance - The identity field
> defined in the code.shared.DataBean Embeddable is not supported.
>
> Someone else has also encountered this issue:
> http://stackoverflow.com/questions/16619860/openjpa-enhance-the-identity-field-defined-in-the-0-embeddable-is-not-suppo
> Second issue at runtime:
> During the second invocation of a method that should return everything from a
> table I get the following stacktrace:
> 1797 testdb TRACE [main] openjpa.jdbc.JDBC - <t 488448102, conn 0> [1 ms]
> close
> <openjpa-2.2.2-r422266:1468616 nonfatal general error>
> org.apache.openjpa.persistence.PersistenceException: null
> at
> org.apache.openjpa.kernel.QueryImpl.compileForCompilation(QueryImpl.java:625)
> at
> org.apache.openjpa.kernel.QueryImpl.compileForExecutor(QueryImpl.java:682)
> at org.apache.openjpa.kernel.QueryImpl.getOperation(QueryImpl.java:1529)
> at
> org.apache.openjpa.kernel.DelegatingQuery.getOperation(DelegatingQuery.java:124)
> at org.apache.openjpa.persistence.QueryImpl.execute(QueryImpl.java:280)
> at
> org.apache.openjpa.persistence.QueryImpl.getResultList(QueryImpl.java:302)
> at test.OpenJpaTest.findAll(OpenJpaTest.java:60)
> at test.OpenJpaTest.findAllAndAssertSizeOfOne(OpenJpaTest.java:65)
> at test.OpenJpaTest.test(OpenJpaTest.java:45)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
> at java.lang.reflect.Method.invoke(Unknown Source)
> at
> org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:45)
> at
> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
> at
> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:42)
> at
> org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
> at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:263)
> at
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:68)
> at
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:47)
> at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231)
> at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60)
> at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229)
> at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50)
> at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222)
> at org.junit.runners.ParentRunner.run(ParentRunner.java:300)
> at
> org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
> at
> org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
> at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
> at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
> at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
> at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
> Caused by: java.lang.NullPointerException
> at
> org.apache.openjpa.kernel.ExpressionStoreQuery.newCompilation(ExpressionStoreQuery.java:154)
> at
> org.apache.openjpa.kernel.QueryImpl.newCompilation(QueryImpl.java:672)
> at
> org.apache.openjpa.kernel.QueryImpl.compilationFromCache(QueryImpl.java:654)
> at
> org.apache.openjpa.kernel.QueryImpl.compileForCompilation(QueryImpl.java:620)
> ... 31 more
> My persistence.xml
> <?xml version="1.0"?>
> <persistence xmlns="http://java.sun.com/xml/ns/persistence" version="2.0">
> <persistence-unit name="testdb" transaction-type="RESOURCE_LOCAL">
>
> <provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
> <class>code.TestDataBean</class>
> <class>code.shared.DataBean</class>
> <class>code.shared.AbstractDataBean</class>
> <properties>
> <!-- HSqlDb -->
> <!--
> <property name="openjpa.jdbc.SynchronizeMappings" value="buildSchema" />
> <property name="openjpa.ConnectionURL" value="jdbc:hsqldb:testdb" />
> <property name="openjpa.ConnectionDriverName"
> value="org.hsqldb.jdbcDriver" />
> <property name="openjpa.ConnectionUserName" value="sa" />
> <property name="openjpa.ConnectionPassword" value="" />
> <property name="openjpa.Log" value="DefaultLevel=TRACE" />
> -->
> <!-- MySql Cluster port 5000 -->
> <property name="openjpa.jdbc.SynchronizeMappings" value="buildSchema" />
> <property name="openjpa.ConnectionDriverName"
> value="com.mysql.jdbc.Driver" />
> <property name="openjpa.ConnectionURL"
> value="jdbc:mysql://localhost:5000/clusterdb" />
> <property name="openjpa.ConnectionUserName" value="root" />
> <property name="openjpa.ConnectionPassword" value="" />
> <property name="openjpa.BrokerFactory" value="ndb" />
> <property name="openjpa.jdbc.DBDictionary" value="TableType=ndb"/>
> <property name="openjpa.ndb.connectString" value="localhost:1186" />
> <property name="openjpa.ndb.database" value="clusterdb" />
> <property name="openjpa.Log" value="DefaultLevel=TRACE" />
> </properties>
> </persistence-unit>
> </persistence>
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira