openjpa-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Diddle (JIRA)" <j...@apache.org>
Subject [jira] Commented: (OPENJPA-1481) metadata preload thinks a varchar column is a blob
Date Sat, 10 Apr 2010 14:41:40 GMT

    [ https://issues.apache.org/jira/browse/OPENJPA-1481?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12855583#action_12855583
] 

Diddle commented on OPENJPA-1481:
---------------------------------

I see the same behaviour with annotations:

	//bi-directional one-to-one association to Result
	@OneToOne
//	@JoinColumn(name="id", nullable=false, insertable=false, updatable=false)
	@JoinColumn(name="id", referencedColumnName="protocol_schedule_id", nullable=false, insertable=false,
updatable=false)
	public Result getResult() {
		return this.result;
	}

<openjpa-1.2.2-r422266:898935 fatal user error> org.apache.openjpa.persistence.ArgumentException:
"com.hjb.socrates.jpa.ProtocolSchedule.result" declares a column that is not compatible with
the expected type "blob".  Column details:
Full Name: protocol_schedule.id
Type: bigint
Size: 0
Default: null
Not Null: true

	at org.apache.openjpa.jdbc.meta.MappingInfo.mergeColumn(MappingInfo.java:662)
	at org.apache.openjpa.jdbc.meta.MappingInfo.mergeJoinColumn(MappingInfo.java:1443)
	at org.apache.openjpa.jdbc.meta.MappingInfo.createJoins(MappingInfo.java:1206)
	at org.apache.openjpa.jdbc.meta.MappingInfo.createForeignKey(MappingInfo.java:968)
	at org.apache.openjpa.jdbc.meta.ValueMappingInfo.getTypeJoin(ValueMappingInfo.java:104)
	at org.apache.openjpa.jdbc.meta.strats.RelationFieldStrategy.map(RelationFieldStrategy.java:157)
	at org.apache.openjpa.jdbc.meta.FieldMapping.setStrategy(FieldMapping.java:121)
	at org.apache.openjpa.jdbc.meta.RuntimeStrategyInstaller.installStrategy(RuntimeStrategyInstaller.java:80)
	at org.apache.openjpa.jdbc.meta.FieldMapping.resolveMapping(FieldMapping.java:454)
	at org.apache.openjpa.jdbc.meta.FieldMapping.resolve(FieldMapping.java:419)
	at org.apache.openjpa.jdbc.meta.strats.RelationFieldStrategy.map(RelationFieldStrategy.java:100)
	at org.apache.openjpa.jdbc.meta.FieldMapping.setStrategy(FieldMapping.java:121)
	at org.apache.openjpa.jdbc.meta.RuntimeStrategyInstaller.installStrategy(RuntimeStrategyInstaller.java:80)
	at org.apache.openjpa.jdbc.meta.FieldMapping.resolveMapping(FieldMapping.java:454)
	at org.apache.openjpa.jdbc.meta.FieldMapping.resolve(FieldMapping.java:419)
	at org.apache.openjpa.jdbc.meta.ClassMapping.resolveMapping(ClassMapping.java:840)
	at org.apache.openjpa.meta.ClassMetaData.resolve(ClassMetaData.java:1647)
	at org.apache.openjpa.meta.MetaDataRepository.processBuffer(MetaDataRepository.java:812)
	at org.apache.openjpa.meta.MetaDataRepository.resolveMapping(MetaDataRepository.java:772)
	at org.apache.openjpa.meta.MetaDataRepository.resolve(MetaDataRepository.java:650)
	at org.apache.openjpa.meta.MetaDataRepository.getMetaDataInternal(MetaDataRepository.java:393)
	at org.apache.openjpa.meta.MetaDataRepository.getMetaDataLocking(MetaDataRepository.java:366)
	at org.apache.openjpa.meta.MetaDataRepository.getMetaData(MetaDataRepository.java:360)
	at org.apache.openjpa.enhance.PCEnhancer.<init>(PCEnhancer.java:253)
	at org.apache.openjpa.enhance.PCEnhancer.<init>(PCEnhancer.java:224)
	at org.apache.openjpa.enhance.PCEnhancer.<init>(PCEnhancer.java:192)
	at org.apache.openjpa.enhance.ManagedClassSubclasser.prepareUnenhancedClasses(ManagedClassSubclasser.java:121)
	at org.apache.openjpa.kernel.AbstractBrokerFactory.loadPersistentTypes(AbstractBrokerFactory.java:310)
	at org.apache.openjpa.kernel.AbstractBrokerFactory.initializeBroker(AbstractBrokerFactory.java:228)
	at org.apache.openjpa.kernel.AbstractBrokerFactory.newBroker(AbstractBrokerFactory.java:190)
	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:145)
	at org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:56)
	at com.hjb.socrates.test.jpa.Entities.setUp(Entities.java:33)
	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:44)
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
	at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:27)
	at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:220)
	at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:46)
	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)

java.lang.NullPointerException
	at com.hjb.socrates.test.jpa.Entities.tearDown(Entities.java:133)
	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:44)
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
	at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:37)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:220)
	at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:46)
	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)


I haven't yet tested this entity to see if it still works as this error occurred during testing
of related entities.
I just know if I remove the referencedColumnName="protocol_schedule_id" it compiles and the
other entity tests work

> metadata preload thinks a varchar column is a blob
> --------------------------------------------------
>
>                 Key: OPENJPA-1481
>                 URL: https://issues.apache.org/jira/browse/OPENJPA-1481
>             Project: OpenJPA
>          Issue Type: Bug
>          Components: jpa
>    Affects Versions: 1.2.2
>            Reporter: David M. Karr
>         Attachments: jpatestcase.zip, OPENJPA-1481--test.zip, TEST-com.att.ecom.dynamiccontent.content.CategoryJPATest.txt
>
>
> Without metadata preload on, my application is working fine. When I turned on metadata
preload, creating the factory fails with an error like this:
> -------------------
> Caused by: <openjpa-1.2.2-r422266:898935 fatal user error> org.apache.openjpa.persistence.ArgumentException:
"com.att.ecom.dynamiccontent.domain.pricelist.PriceListFolder.childItems<element:class
com.att.ecom.dynamiccontent.domain.pricelist.PriceList>" declares a column that is not
compatible with the expected type "blob".  Column details:
> Full Name: DCS_PRICE_LIST.PRICE_LIST_ID
> Type: varchar
> Size: 255
> Default: null
> Not Null: false
> -------------------
> This error message is from the unit test output, which uses Derby.  My application normally
uses Oracle.  The only difference in the error message between the unit test with Derby and
at runtime with Oracle is the type is "varchar2" (Derby only has varchar).
> The excerpt from the orm.xml for this property is this:
>             <id name="id">
>                 <column name="PRICE_LIST_ID"/>
>             </id>
> And from the domain class:
>     @Id
>     private String          id;
> I'm going to attach the "TEST" output file from the build which shows the error message
and stack trace.  I'm also going to attach a zip file containing an Eclipse project, but the
"lib" and "libtest" directories will only have a "jars.lst" text file containing the names
of the jars that were in that directory (almost all of which have a version number in the
name).  Note that not all of the jars in those lists are required for the unit test to complete.
 Some of the jars in the list are required for the CXF and Spring portion of the application,
so wouldn't be necessary for this test case.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message