trjiii [
http://community.jboss.org/people/trjiii] created the discussion
"Re: jBPM 5.1, OpenJPA and WebSphere 7"
To view the discussion, visit:
http://community.jboss.org/message/631818#631818
--------------------------------------------------------------
Thanks Mauricio. Yes I am having some issues. Some of them I have been able to work
around and some have me completely stuck.
I broke trying to use OpenJPA this into two parts. First I tried to get Process
Information to persist. After that I tried to get the Human Tasks to persist.
First, when I tried to get the Process information persisted, I ran into my first
problem. In *JpaProcessPersistenceContext.**getProcessInstancesWaitingForEvent*, there is
a call to the *ProcessInstanceWaitingForEvent* named query. This named query contains a
Hibernate specific keyword in the query itself, "*+elements+*". I went back and
look at the ProcessInstanceInfo class and noticed that it has a Hibernate Specific
annotation that is being used*((a)CollectionOfElements*). This functionality is not
available in JPA 1.0. In JPA 2.0 , they added a @ElementCollection annotation that is
similar but I still do not think JPQL will support the "*+elements+*" keyword as
it is HQL. I could work around this issue by changing the named query to just return all
the ProcessInstanceInfo objects and loop through them in
getProcessInstancesWaitingForEvent and verify whether or not the supplied type is in the
eventTypes set and capture the ID in an array list(I would not suggest this for a
production environment but it suffices for testing). Once I did that, recompiled and
re-jared everything, the Process information(session, workitem, etc) seem to persist
fine.
The next part I tried to tackle was trying to get Human Tasks to work with OpenJPA. I
have run at least two issues when dealing with trying to get Tasks to work with OpenJPA.
First, some of the classes(don't have the list in front of me) were runtime enhanced
and IBM in their infinite wisdom WAS switched off dynamic runtime enhancement by default
so the EntityManager wouldn't load. I exploded the JAR and ran the runtime enhancement
against the .class files and went to load again. Now I have run into mapping trouble...I
am currently receiving the followin exception when I try to run the application. It seems
to be barfing on the Deadlines property in the Task class. If you have any ideas I would
appreciate the help. I am currently running inside WAS with Db2 as the database but am
trying to reproduce in a standalone application...
Thanks for any help you can provide!
Caused by: <openjpa-1.2.3-SNAPSHOT-r422266:965640 fatal user error>
org.apache.openjpa.persistence.ArgumentException: You have supplied columns for
"org.jbpm.task.Task.deadlines.org.jbpm.task.Deadlines.endDeadlines", but this
mapping cannot have columns in this context.
at
org.apache.openjpa.jdbc.meta.MappingInfo.assertNoSchemaComponents(MappingInfo.java:327)
at
org.apache.openjpa.jdbc.meta.strats.RelationToManyTableFieldStrategy.map(RelationToManyTableFieldStrategy.java:96)
at
org.apache.openjpa.jdbc.meta.strats.RelationCollectionTableFieldStrategy.map(RelationCollectionTableFieldStrategy.java:94)
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.jdbc.meta.ValueMappingImpl.resolve(ValueMappingImpl.java:474)
at
org.apache.openjpa.jdbc.meta.strats.EmbedFieldStrategy.map(EmbedFieldStrategy.java:107)
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)
--------------------------------------------------------------
Reply to this message by going to Community
[
http://community.jboss.org/message/631818#631818]
Start a new discussion in jBPM at Community
[
http://community.jboss.org/choose-container!input.jspa?contentType=1&...]