> 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

Reply via email to