[jbossseam-issues] [JBoss JIRA] Commented: (JBSEAM-1946) seam 2.0's persistence:managed-persistence-context not support openjpa
Jay Balunas (JIRA)
jira-events at lists.jboss.org
Fri Mar 21 12:05:41 EDT 2008
[ http://jira.jboss.com/jira/browse/JBSEAM-1946?page=comments#action_12404066 ]
Jay Balunas commented on JBSEAM-1946:
-------------------------------------
The problem is that the "HibernatePersistenceProvider" component has a higher precedence (FRAMEWORK) that the base "PersistenceProvider" component (precedence=BUILT_IN).
This means that the "HibernatePersistenceProvider" will *always* be used. This is why hibernate works great but toplink and openJPA fail.
The solution is to tell Seam that the base "PersistenceProvider" has a higher precedence. To this add the following to your "components.xml".
<component name="org.jboss.seam.persistence.persistenceProvider"
scope="stateless" class="org.jboss.seam.persistence.PersistenceProvider">
</component>
This is not a specifically a coding "bug", but instead should be documented for using different JPA providers.
> seam 2.0's persistence:managed-persistence-context not support openjpa
> ----------------------------------------------------------------------
>
> Key: JBSEAM-1946
> URL: http://jira.jboss.com/jira/browse/JBSEAM-1946
> Project: JBoss Seam
> Issue Type: Bug
> Components: Core
> Affects Versions: 2.0.0.GA
> Environment: tomacat 6+ myfaces 1.2.0 + seam 2.0 ga+ spring 2.0.6 + openjpa 0.9.7
> Reporter: clf clf
> Assigned To: Jay Balunas
> Fix For: 2.0.2.GA, 2.1.0.GA
>
>
> I try to test the Seam's compatibility with openjpa.
> The web project is tomacat + myfaces + seam + spring jpa + openjpa.
> I define entityManagerFactory in the application.xml
> [code]
> <!-- JPA EntityManagerFactory -->
> <bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
> <property name="dataSource" ref="dataSource"/>
> <property name="loadTimeWeaver">
> <bean class="org.springframework.instrument.classloading.ReflectiveLoadTimeWeaver"/>
> </property>
> <property name="jpaVendorAdapter">
> <!--
> <bean class="org.springframework.orm.jpa.vendor.TopLinkJpaVendorAdapter">
> <property name="databasePlatform"
> value="org.springframework.samples.petclinic.toplink.EssentialsHSQLPlatformWithNativeSequence"/>
> <property name="showSql" value="true"/>
> </bean>
> -->
> <!--
> <bean id="jpaAdapter" class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
> <property name="database" value="HSQL"/>
> <property name="showSql" value="true"/>
> </bean>
> -->
> <bean id="jpaAdapter" class="org.springframework.orm.jpa.vendor.OpenJpaVendorAdapter">
> <property name="database" value="HSQL"/>
> <property name="showSql" value="true"/>
> </bean>
> </property>
> </bean>
> [/code]
> And Define managed-persistence-context in component.xml
> [code]
> <persistence:managed-persistence-context name="courseEntityManager"
> entity-manager-factory="#{entityManagerFactory}"
> auto-create="true" />
> [/code]
> The Web Project reports Error
> [code]
> 2007-09-21 09:21:09,981 ERROR [org.jboss.seam.jsf.SeamPhaseListener] - <uncaught exception>
> java.lang.RuntimeException: could not proxy delegate
> at org.jboss.seam.persistence.HibernatePersistenceProvider.proxyDelegate(HibernatePersistenceProvider.java:102)
> Caused by: java.lang.ClassCastException: org.apache.openjpa.persistence.EntityManagerImpl
> at org.jboss.seam.persistence.HibernatePersistenceProvider.proxyDelegate(HibernatePersistenceProvider.java:98)
> [/code]
> I also test seam with toplink and hibernate,and find toplink fail,hibernate success
> It seems to me that seam's persistence:managed-persistence-context only supports hibernate as entity-manager-factory
> and not supports other jpa implementation.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the seam-issues
mailing list