blaze-persistence icon indicating copy to clipboard operation
blaze-persistence copied to clipboard

Support EclipseLink 2.7.x and 3.x

Open Mobe91 opened this issue 5 years ago • 0 comments

Currently, Blaze-Persistence does not work with EclipseLink 2.7.x. We should add support for it. While doing that, we should also add support for version 3.x which, according to the issue tracker, should fix some of the issues we have seen so far.

Reproduce issue:

  1. Upgrade EclipseLink version to 2.7.7
  2. Run com.blazebit.persistence.testsuite.ArrayExpressionTest#testSelectParameterIndex
  3. Observe the following exception:
java.lang.IllegalArgumentException: Incompatible persistence configuration getting Metamodel Id Type for the ManagedType [MappedSuperclassTypeImpl@816944408:Ownable [ javaType: class com.blazebit.persistence.testsuite.entity.Ownable descriptor: RelationalDescriptor(com.blazebit.persistence.testsuite.entity.Ownable --> [DatabaseTable(__METAMODEL_RESERVED_IN_MEM_ONLY_TABLE_NAME)]), mappings: 1]].

	at org.eclipse.persistence.internal.jpa.metamodel.IdentifiableTypeImpl.getIdType(IdentifiableTypeImpl.java:254)
	at com.blazebit.persistence.parser.util.JpaMetamodelUtils.getIdAttributes(JpaMetamodelUtils.java:338)
	at com.blazebit.persistence.impl.EntityMetamodelImpl$ExtendedManagedTypeImpl.<init>(EntityMetamodelImpl.java:741)
	at com.blazebit.persistence.impl.EntityMetamodelImpl$ExtendedManagedTypeImpl.<init>(EntityMetamodelImpl.java:725)
	at com.blazebit.persistence.impl.EntityMetamodelImpl.<init>(EntityMetamodelImpl.java:176)
	at com.blazebit.persistence.impl.CriteriaBuilderFactoryImpl.<init>(CriteriaBuilderFactoryImpl.java:109)
	at com.blazebit.persistence.impl.CriteriaBuilderConfigurationImpl.createCriteriaBuilderFactory(CriteriaBuilderConfigurationImpl.java:1947)
	at com.blazebit.persistence.testsuite.base.jpa.AbstractJpaPersistenceTest.init(AbstractJpaPersistenceTest.java:419)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
	at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24)
	at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
	at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
	at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
	at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69)
	at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:33)
	at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:220)
	at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:53)

Mobe91 avatar Nov 29 '20 01:11 Mobe91