was  https://issues.apache.org/jira/browse/TOMEE-956

*Romain Manni-Bucau*
*Twitter: @rmannibucau <https://twitter.com/rmannibucau>*
*Blog: **http://rmannibucau.wordpress.com/*<http://rmannibucau.wordpress.com/>
*LinkedIn: **http://fr.linkedin.com/in/rmannibucau*
*Github: https://github.com/rmannibucau*



2013/6/1 Romain Manni-Bucau <[email protected]>

> did you try to add to your persistence.xml:
>
>
>      <class>de.orbitx.jpaissue.AbstractBaseEntity</class>
>     <class>de.orbitx.jpaissue.RetenaUser</class>
>     <class>de.orbitx.jpaissue.Role</class>
>     <exclude-unlisted-classes>true</exclude-unlisted-classes>
>
> ?
>
> *Romain Manni-Bucau*
> *Twitter: @rmannibucau <https://twitter.com/rmannibucau>*
> *Blog: **http://rmannibucau.wordpress.com/*<http://rmannibucau.wordpress.com/>
> *LinkedIn: **http://fr.linkedin.com/in/rmannibucau*
> *Github: https://github.com/rmannibucau*
>
>
>
> 2013/6/1 Reinis Vicups <[email protected]>
>
>> Hi,
>>
>> I am attaching foobar project that replicates this issue of mine. I will
>> gladly post jira on openejb or openjpa if that is really framework issue.
>>
>> br
>> reinis
>>
>>
>> On 01.06.2013 11:48, Reinis Vicups wrote:
>>
>>> Hi,
>>>
>>> I am sorry, the exception is exactly the same no matter if I add
>>> AbstractBaseEntity to PU or not. The other exception came from usage of
>>> generics at some point in my numerous re-factorings.
>>>
>>> Please find the complete log output from the test-run I just made with
>>> AbstractBaseEntity in PU here: https://gist.github.com/**
>>> anonymous/5689822 <https://gist.github.com/anonymous/5689822>
>>>
>>> Again, this VERY SAME config works just fine when running in TomEE.
>>>
>>> The config looks like this:
>>>
>>> orm.xml
>>>
>>> <entity-mappings 
>>> xmlns="http://java.sun.com/**xml/ns/persistence/orm<http://java.sun.com/xml/ns/persistence/orm>
>>> "
>>>     
>>> xmlns:xsi="http://www.w3.org/**2001/XMLSchema-instance<http://www.w3.org/2001/XMLSchema-instance>
>>> "
>>>     
>>> xsi:schemaLocation="http://**java.sun.com/xml/ns/**persistence/orm<http://java.sun.com/xml/ns/persistence/orm>
>>> http://java.sun.com/xml/ns/**persistence/orm_2_0.xsd<http://java.sun.com/xml/ns/persistence/orm_2_0.xsd>
>>> "
>>>     version="2.0">
>>>
>>>     <persistence-unit-metadata>
>>>         <persistence-unit-defaults>
>>>             <access>FIELD</access>
>>>         </persistence-unit-defaults>
>>>     </persistence-unit-metadata>
>>>
>>>     <entity class="my.base.**AbstractBaseEntity" />
>>>     <entity class="my.access.Permission" />
>>>     ...
>>> </entity-mappings>
>>>
>>> persistence.xml
>>>
>>> <persistence version="2.0"
>>>     
>>> xmlns="http://java.sun.com/**xml/ns/persistence<http://java.sun.com/xml/ns/persistence>"
>>> xmlns:xsi="http://www.w3.org/**2001/XMLSchema-instance<http://www.w3.org/2001/XMLSchema-instance>
>>> "
>>>     
>>> xsi:schemaLocation="http://**java.sun.com/xml/ns/**persistence<http://java.sun.com/xml/ns/persistence>
>>> http://java.sun.com/xml/ns/**persistence/persistence_2_0.**xsd<http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd>
>>> ">
>>>
>>>     <persistence-unit name="default" transaction-type="JTA">
>>> <provider>org.apache.openjpa.**persistence.**PersistenceProviderImpl</**provider>
>>>
>>>         <jta-data-source>ICDatabase</**jta-data-source>
>>> <non-jta-data-source>**ICDatabaseNonJta</non-jta-**data-source>
>>>         <mapping-file>META-INF/orm.**xml</mapping-file>
>>>
>>>         <properties>
>>>             <property name="openjpa.**ConnectionFactoryProperties"
>>>                 value="PrettyPrint=true, PrettyPrintLineLength=144,
>>> PrintParameters=true, MaxActive=10, MaxIdle=5, MinIdle=2, MaxWait=60000,
>>> TestOnBorrow=true" />
>>>             <property name="openjpa.Log" value="DefaultLevel=Trace" />
>>>             <property name="openjpa.TransactionMode" value="managed" />
>>>
>>>             <property name="openjpa.jdbc.**DBDictionary"
>>> value="org.apache.openjpa.**jdbc.sql.DerbyDictionary" />
>>>             <property name="openjpa.jdbc.Schema" value="ic" />
>>>             <property name="openjpa.jdbc.**SynchronizeMappings"
>>> value="buildSchema" />
>>>             <property name="openjpa.jdbc.**SchemaFactory"
>>> value="native(ForeignKeys=**true)"/>
>>>
>>>             <property name="openjpa.**DynamicEnhancementAgent"
>>> value="true" />
>>>             <property name="openjpa.**RuntimeUnenhancedClasses"
>>> value="unsupported" />
>>>
>>>             <property name="openjpa.DataCache" value="true" />
>>>             <property name="openjpa.QueryCache" value="true" />
>>>         </properties>
>>>     </persistence-unit>
>>> </persistence>
>>>
>>> Thank you Romain for taking time to look at this.
>>>
>>> br
>>> reinis
>>>
>>> On 01.06.2013 09:56, Romain Manni-Bucau wrote:
>>>
>>>> A sample would be great yes
>>>> Le 1 juin 2013 09:51, "Reinis Vicups" <[email protected]> a écrit :
>>>>
>>>>  Hi,
>>>>>
>>>>> I bootstrap from persistence.xml that has entity definition for
>>>>> Permission
>>>>> and NO entity definition for AbstractBaseEntity (as suggested
>>>>> somewhere on
>>>>> forums) like this:
>>>>>
>>>>> <entity class="my.access.Permission" />
>>>>>
>>>>> So NO, Abstractbaseentity is not listed in persistence unit. I have
>>>>> tried
>>>>> adding it and got different exception (something with field 'id' does
>>>>> not
>>>>> have persistence annotations). If this is relevant I can post the
>>>>> exception
>>>>> I get if adding AbstractBaseEntity to PU.
>>>>>
>>>>>
>>>>> On 01.06.2013 09:22, Romain Manni-Bucau wrote:
>>>>>
>>>>>  Abstractbaseentity is listed in the persistence unit?
>>>>>>
>>>>>> Well you can still enhance it at build time before tests
>>>>>> Le 31 mai 2013 23:54, "Reinis Vicups" <[email protected]> a écrit :
>>>>>>
>>>>>>   Hi,
>>>>>>
>>>>>>> I get NoSuchMethodError when testing with ApplicationComposer and
>>>>>>> manually
>>>>>>> supplied javaagent. When I start container (TomEE) everything works
>>>>>>> just
>>>>>>> fine.
>>>>>>>
>>>>>>> I enable javaagent for maven test plugin like this:
>>>>>>>
>>>>>>>                   <plugin>
>>>>>>> <groupId>org.apache.maven.******plugins</groupId>
>>>>>>> <artifactId>maven-failsafe-******plugin</artifactId>
>>>>>>> <version>2.14.1</version>
>>>>>>>                   <executions>
>>>>>>>                       <execution>
>>>>>>>                           <goals>
>>>>>>> <goal>integration-test</goal>
>>>>>>> <goal>verify</goal>
>>>>>>>                           </goals>
>>>>>>>                       </execution>
>>>>>>>                   </executions>
>>>>>>>                       <configuration>
>>>>>>> <groups>de.orbitx.retena.******IntegrationTest</groups>
>>>>>>>                           <includes>
>>>>>>> <include>**/*.class</include>
>>>>>>>                           </includes>
>>>>>>> <argLine>-javaagent:${project.******build.directory}/openejb-****
>>>>>>> javaagent-${openejb.version}.******jar</argLine>
>>>>>>> <workingDirectory>${project.******build.directory}</******workingDirectory>
>>>>>>>
>>>>>>>                       </configuration>
>>>>>>>                   </plugin>
>>>>>>>
>>>>>>> javaagent is added like this (I use maven-dependency-plugin to copy
>>>>>>> it to
>>>>>>> right place):
>>>>>>>
>>>>>>>               <dependency>
>>>>>>> <groupId>org.apache.openejb</******groupId>
>>>>>>> <artifactId>openejb-javaagent<******/artifactId>
>>>>>>> <version>4.6.0-SNAPSHOT</******version>
>>>>>>>                   <scope>test</scope>
>>>>>>>               </dependency>
>>>>>>>
>>>>>>> The full log I was able to get our of openejb is here :
>>>>>>> https://gist.github.com/******anonymous/5688204<https://gist.github.com/****anonymous/5688204>
>>>>>>> <https://**gist.github.com/**anonymous/**5688204<https://gist.github.com/**anonymous/5688204>>
>>>>>>>
>>>>>>> <https://**gist.github.com/**anonymous/**5688204<http://gist.github.com/anonymous/**5688204>
>>>>>>> <https://**gist.github.com/anonymous/**5688204<https://gist.github.com/anonymous/5688204>>
>>>>>>>
>>>>>>> My AbstractBaseClass looks like this:
>>>>>>>
>>>>>>> @MappedSuperclass
>>>>>>> public abstract class AbstractBaseEntity implements Serializable {
>>>>>>>
>>>>>>>       @Id
>>>>>>>       @GeneratedValue(strategy = GenerationType.IDENTITY)
>>>>>>>       @Column(name = "id")
>>>>>>>       private Integer id;
>>>>>>>
>>>>>>>       // getter setter and so on....
>>>>>>> }
>>>>>>>
>>>>>>> and the Permission class from stack trace like this:
>>>>>>>
>>>>>>> @Entity
>>>>>>> public class Permission extends AbstractBaseEntity {
>>>>>>>
>>>>>>>       private String permission;
>>>>>>>
>>>>>>>       // more irrelevant code is here
>>>>>>> }
>>>>>>>
>>>>>>> I bootstrap from persistence.xml that has entity definition for
>>>>>>> Permission
>>>>>>> and NO entity definition for AbstractBaseEntity (as suggested
>>>>>>> somewhere
>>>>>>> on
>>>>>>> forums) like this:
>>>>>>>
>>>>>>> <entity class="my.access.Permission" />
>>>>>>>
>>>>>>> I have refactored everything couple of times (removed generics,
>>>>>>> tried to
>>>>>>> change AbstractBaseEntity to a concrete class, moved @Id from here to
>>>>>>> there
>>>>>>> and now appears that the only option that I have still think of is to
>>>>>>> remove BaseEntity.
>>>>>>>
>>>>>>> Before I do that, I would be happy if someone could help me to avoid
>>>>>>> that,
>>>>>>> because this is not solution but, rather, workaround that makes my
>>>>>>> code
>>>>>>> worse.
>>>>>>>
>>>>>>> thank you guys for your help!
>>>>>>> reinis
>>>>>>>
>>>>>>>
>>>>>>>
>>
>

Reply via email to