Hi all,
Our project(base on osgi) upgrade openJPA from 2.1.0 to 2.2.1. I follow
the user guide add the property in the persistence.xml as following
<property name="openjpa.Compatibility" value=
"CheckDatabaseForCascadePersistToDetachedEntity=true" />
but after adding it into the persistence.xml, when we do the enhancement
of the Entity, we run into such kind of error in red color.
my enhancement script in eclipse:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<launchConfiguration
type="org.eclipse.ui.externaltools.ProgramLaunchConfigurationType">
<listAttribute key="org.eclipse.debug.ui.favoriteGroups">
<listEntry value="org.eclipse.ui.externaltools.launchGroup"/>
</listAttribute>
<stringAttribute key="org.eclipse.ui.externaltools.ATTR_LOCATION" value="$
{system_property:java.home}${system_property:file.separator}bin$
{system_property:file.separator}java"/>
<stringAttribute key="org.eclipse.ui.externaltools.ATTR_TOOL_ARGUMENTS"
value="-Djava.ext.dirs=com.ibm.cfs.persistence.jpa$
{system_property:file.separator}lib -cp com.ibm.cfs.persistence.jpa$
{system_property:path.separator}com.ibm.cfs.persistence.jpa$
{system_property:file.separator}target$
{system_property:file.separator}classes$
{system_property:path.separator}com.ibm.cfs.core$
{system_property:file.separator}target$
{system_property:file.separator}classes${system_property:path.separator}
org.apache.openjpa.enhance.PCEnhancer ${build_files} -tcl false"/>
<stringAttribute key="org.eclipse.ui.externaltools.ATTR_WORKING_DIRECTORY"
value="${workspace_loc}"/>
</launchConfiguration>
Anything we missed?
[main] openjpa.Tool - No targets were given. Running on all classes in your
persistent classes list, or all metadata files in
classpath directories if you have not listed your persistent classes. Use
-help to display tool usage information.
Exception in thread "main" org.apache.openjpa.lib.util.ParseException: There
was an error while setting up the configuration plugin
option "Compatibility". The plugin was of type "class
org.apache.openjpa.conf.Compatibility". The plugin property
"CheckDatabaseForCascadePersistToDetachedEntity" had no corresponding setter
method or accessible field. The plugin property closely
matches "CascadeWithDetach"; perhaps the property was misspelled. Ensure that
your plugin configuration string uses key values that
correspond to setter methods in the plugin class. All possible plugin
properties are: [AbstractMappingUniDirectional, AutoOff,
CascadeWithDetach, CloseOnManagedCommit, CopyObjectIds, CopyOnDetach,
FlushBeforeDetach,
IgnoreDetachedStateFieldForProxySerialization, JPQL, JPQL_EXTENDED,
JPQL_STRICT, JPQL_WARN, NonDefaultMappingAllowed,
NonOptimisticVersionCheck, PrivatePersistentProperties,
QuotedNumbersInQueries, ReloadOnDetach, StoreMapCollectionInEntityAsBlob,
StrictIdentityValues, SuperclassDiscriminatorStrategyByDefault,
UseJPA2DefaultOrderColumnName, ValidateFalseReturnsHollow,
ValidateTrueChecksStore].
at
org.apache.openjpa.lib.conf.Configurations.configureInstance(Configurations.java:515)
at
org.apache.openjpa.lib.conf.Configurations.configureInstance(Configurations.java:443)
at org.apache.openjpa.lib.conf.PluginValue.configure(PluginValue.java:115)
at org.apache.openjpa.lib.conf.ObjectValue.configure(ObjectValue.java:98)
at
org.apache.openjpa.conf.OpenJPAConfigurationImpl.getCompatibilityInstance(OpenJPAConfigurationImpl.java:1490)
at
org.apache.openjpa.persistence.PersistenceMetaDataDefaults.determineImplicitAccessType(PersistenceMetaDataDefaults.java:376)
at
org.apache.openjpa.persistence.PersistenceMetaDataDefaults.determineAccessType(PersistenceMetaDataDefaults.java:332)
at
org.apache.openjpa.persistence.PersistenceMetaDataDefaults.populate(PersistenceMetaDataDefaults.java:274)
at
org.apache.openjpa.meta.MetaDataRepository.addMetaData(MetaDataRepository.java:914)
at
org.apache.openjpa.meta.MetaDataRepository.addMetaData(MetaDataRepository.java:899)
at
org.apache.openjpa.persistence.AnnotationPersistenceMetaDataParser.getMetaData(AnnotationPersistenceMetaDataParser.java:746)
at
org.apache.openjpa.persistence.AnnotationPersistenceMetaDataParser.parseClassAnnotations
(AnnotationPersistenceMetaDataParser.java:545)
at
org.apache.openjpa.persistence.AnnotationPersistenceMetaDataParser.parse(AnnotationPersistenceMetaDataParser.java:415)
at
org.apache.openjpa.persistence.PersistenceMetaDataFactory.load(PersistenceMetaDataFactory.java:260)
at
org.apache.openjpa.meta.MetaDataRepository.getMetaDataInternal(MetaDataRepository.java:580)
at
org.apache.openjpa.meta.MetaDataRepository.getMetaDataInternal(MetaDataRepository.java:400)
at
org.apache.openjpa.meta.MetaDataRepository.getMetaData(MetaDataRepository.java:384)
at org.apache.openjpa.enhance.PCEnhancer.<init>(PCEnhancer.java:283)
at org.apache.openjpa.enhance.PCEnhancer.run(PCEnhancer.java:4675)
at org.apache.openjpa.enhance.PCEnhancer.run(PCEnhancer.java:4622)
at org.apache.openjpa.enhance.PCEnhancer$1.run(PCEnhancer.java:4592)
at
org.apache.openjpa.lib.conf.Configurations.launchRunnable(Configurations.java:741)
at
org.apache.openjpa.lib.conf.Configurations.runAgainstAllAnchors(Configurations.java:731)
at org.apache.openjpa.enhance.PCEnhancer.run(PCEnhancer.java:4587)
at org.apache.openjpa.enhance.PCEnhancer.main(PCEnhancer.java:4578)
and I download the source code of openJPA, and there is no method invoke
the method of setCheckDatabaseForCascadePersistToDetachedEntity of
Compatibility class.
Thanks for any help or info for this issue