> I download the 1.0.0 source and ran mvn install. It built and > installed ok. I use either the maven enhance plugin or the ant task to > enhance the classes. When I run my simple test app I get the following > exception...
Is there any way we could get access to that test application? I kinda suspect some sort of classloader issue, as I can't see how the isManagedType() call would otherwise fail. Also, can you work around it by setting the openjpa.RuntimeUnenhancedClasses property to 'disabled'? > Also i think the following ddl is incorrect.. > > CREATE TABLE AttributeAndValue (id INTEGER NOT NULL IDENTITY, > mAttribute VARCHAR(255), mValue VARCHAR(255), version INTEGER, > mProductInstance_id INTEGER, UNIQUE (mValue)) > > this is the @Table annotation used on the AttributeAndValue class. > > @Table([EMAIL PROTECTED](columnNames={ > "mProductInstance, mAttribute", "mValue"})) IIRC, OpenJPA does not currently support multi-column unique constraints. I think that there is work in progress to resolve this, though. -Patrick On 8/29/07, ben short <[EMAIL PROTECTED]> wrote: > Hi, > > I download the 1.0.0 source and ran mvn install. It built and > installed ok. I use either the maven enhance plugin or the ant task to > enhance the classes. When I run my simple test app I get the following > exception... > > 32 openjpa INFO [main] openjpa.Runtime - Starting OpenJPA 1.0.0 > 438 openjpa TRACE [main] openjpa.jdbc.SQL - <t 9194103, conn > 7143488> executing prepstmnt 25621063 SELECT SEQUENCE_SCHEMA, > SEQUENCE_NAME FROM INFORMATION_SCHEMA.SYSTEM_SEQUENCES > 438 openjpa TRACE [main] openjpa.jdbc.SQL - <t 9194103, conn > 7143488> [0 ms] spent > 438 openjpa TRACE [main] openjpa.jdbc.SQL - <t 9194103, conn > 5285449> executing stmnt 6109469 CREATE TABLE AttributeAndValue (id > INTEGER NOT NULL IDENTITY, mAttribute VARCHAR(255), mValue > VARCHAR(255), version INTEGER, mProductInstance_id INTEGER, UNIQUE > (mValue)) > 438 openjpa TRACE [main] openjpa.jdbc.SQL - <t 9194103, conn > 5285449> [0 ms] spent > 454 openjpa TRACE [main] openjpa.jdbc.SQL - <t 9194103, conn > 1067475> executing stmnt 33189144 CREATE TABLE Product (id INTEGER NOT > NULL IDENTITY, version INTEGER) > 454 openjpa TRACE [main] openjpa.jdbc.SQL - <t 9194103, conn > 1067475> [0 ms] spent > 454 openjpa TRACE [main] openjpa.jdbc.SQL - <t 9194103, conn > 9716945> executing stmnt 21658130 CREATE TABLE ProductInstance (id > INTEGER NOT NULL IDENTITY, version INTEGER) > 454 openjpa TRACE [main] openjpa.jdbc.SQL - <t 9194103, conn > 9716945> [0 ms] spent > 454 openjpa TRACE [main] openjpa.jdbc.SQL - <t 9194103, conn > 32486590> executing stmnt 2830910 CREATE TABLE Product_ProductInstance > (Product_id INTEGER, mProductInstances_id INTEGER) > 454 openjpa TRACE [main] openjpa.jdbc.SQL - <t 9194103, conn > 32486590> [0 ms] spent > 454 openjpa TRACE [main] openjpa.jdbc.SQL - <t 9194103, conn > 7858936> executing stmnt 30983464 CREATE INDEX > I_TTRBDVL_MPRODUCTINSTANCE ON AttributeAndValue (mProductInstance_id) > 454 openjpa TRACE [main] openjpa.jdbc.SQL - <t 9194103, conn > 7858936> [0 ms] spent > 454 openjpa TRACE [main] openjpa.jdbc.SQL - <t 9194103, conn > 10127976> executing stmnt 14900151 CREATE INDEX I_PRDCTNC_ELEMENT ON > Product_ProductInstance (mProductInstances_id) > 454 openjpa TRACE [main] openjpa.jdbc.SQL - <t 9194103, conn > 10127976> [0 ms] spent > 454 openjpa TRACE [main] openjpa.jdbc.SQL - <t 9194103, conn > 17010151> executing stmnt 32826737 CREATE INDEX I_PRDCTNC_PRODUCT_ID > ON Product_ProductInstance (Product_id) > 454 openjpa TRACE [main] openjpa.jdbc.SQL - <t 9194103, conn > 17010151> [0 ms] spent > Exception in thread "main" <openjpa-1.0.0-rType 'svnversion --help' > for usage. fatal user error> > org.apache.openjpa.persistence.ArgumentException: The type "class > com.daisytechnologies.jpatest.ProductInstance" has not been enhanced. > at > org.apache.openjpa.meta.ClassMetaData.resolveMeta(ClassMetaData.java:1631) > at > org.apache.openjpa.meta.ClassMetaData.resolve(ClassMetaData.java:1605) > at > org.apache.openjpa.meta.MetaDataRepository.processBuffer(MetaDataRepository.java:675) > at > org.apache.openjpa.meta.MetaDataRepository.resolveMeta(MetaDataRepository.java:575) > at > org.apache.openjpa.meta.MetaDataRepository.resolve(MetaDataRepository.java:500) > at > org.apache.openjpa.meta.MetaDataRepository.getMetaData(MetaDataRepository.java:302) > at > org.apache.openjpa.enhance.ManagedClassSubclasser.setIntercepting(ManagedClassSubclasser.java:264) > at > org.apache.openjpa.enhance.ManagedClassSubclasser.prepareUnenhancedClasses(ManagedClassSubclasser.java:157) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:597) > at > org.apache.openjpa.kernel.AbstractBrokerFactory.loadPersistentTypes(AbstractBrokerFactory.java:287) > at > org.apache.openjpa.kernel.AbstractBrokerFactory.newBroker(AbstractBrokerFactory.java:197) > 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 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:597) > at > org.springframework.orm.jpa.AbstractEntityManagerFactoryBean$ManagedEntityManagerFactoryInvocationHandler.invoke(AbstractEntityManagerFactoryBean.java:375) > at $Proxy0.createEntityManager(Unknown Source) > at com.daisytechnologies.jpatest.Main.insert(Main.java:45) > at com.daisytechnologies.jpatest.Main.main(Main.java:39) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:597) > at com.intellij.rt.execution.application.AppMain.main(AppMain.java:90) > > But if i use the 0.9.8-SNAPSHOT version without recompiling or > enhancing the classes it works OK. > > The same issue occurred with a postgres setup. > > Also i think the following ddl is incorrect.. > > CREATE TABLE AttributeAndValue (id INTEGER NOT NULL IDENTITY, > mAttribute VARCHAR(255), mValue VARCHAR(255), version INTEGER, > mProductInstance_id INTEGER, UNIQUE (mValue)) > > this is the @Table annotation used on the AttributeAndValue class. > > @Table([EMAIL PROTECTED](columnNames={ > "mProductInstance, mAttribute", "mValue"})) > > Ben > -- Patrick Linskey 202 669 5907