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
|