Mule与JPA的兼容性

时间:2012-10-08 08:40:08

标签: spring hibernate jpa jpa-2.0 mule

我使用的是Mule Studio版本:1.3.1。

buildDate:201209061215

我无法获得JPA终点。我还下载了jpa-connector-1.0-20120925-2201.jar 但我不知道要与mule studio整合。

所以我决定使用一个简单的Java转换器并编写我的处理逻辑,它将在内部使用JPA / Hibernate。

我开始知道我必须使用JPA供应商适配器进行spring,否则我的服务都不会实现DAO类。

我已经将数据源和entityManager声明为mule flow xml中的spring bean,如图所示。

<spring:bean id="dataSource"
            class="org.springframework.jdbc.datasource.DriverManagerDataSource">
                <spring:property name="driverClassName" value="com.mysql.jdbc.Driver" />
                <spring:property name="url" value="jdbc:mysql://localhost:3306/eigDB" />
                <spring:property name="username" value="root" />
                <spring:property name="password" value="tiger" />
        </spring:bean>

        <spring:bean id="entityManagerFactory"
        class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
        <spring:property name="dataSource" ref="dataSource" />
        <spring:property name="persistenceUnitName" value="autoRebateSystem" />
        <spring:property name="jpaVendorAdapter">
            <spring:bean
                class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
                <spring:property name="databasePlatform" value="org.hibernate.dialect.Oracle10gDialect" />
                <spring:property name="showSql" value="true" />
            </spring:bean>

但是mule flow xml无法识别任何类型的spring框架。 发现很难替换这些类名。

Plez为我的问题提供解决方案, 通过让我知道mule studio的PROPER替代品。

1) org.springframework.jdbc.datasource.DriverManagerDataSource
2) org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean
3) org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter

2 个答案:

答案 0 :(得分:1)

您是否遗漏使用HibernateJpaDialectJpaTransactionManager; 我希望以下配置有用。

<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
    <property name="url" value="jdbc:mysql://localhost:3306/yourdatabase"/>
    <property name="username" value="your- username"/>
    <property name="password" value="your- password"/>
</bean>

<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
    <property name="entityManagerFactory" ref="entityManagerFactory"/>
</bean>


<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<!--<property name="dataSource" ref="dataSource"/>-->
    <property name="persistenceUnitName" value="<your-persistunit-name>"/>
    <property name="jpaVendorAdapter" ref="jpaVendorAdapter"/>
    <property name="jpaDialect">
        <bean class="org.springframework.orm.jpa.vendor.HibernateJpaDialect/>
    </property>
    <property name="loadTimeWeaver">
        <bean class="org.springframework.instrument.classloading.InstrumentationLoadTimeWeaver">
        </bean>
    </property>
</bean>

<bean id="jpaVendorAdapter" class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
    <property name="databasePlatform" value="org.eclipse.persistence.platform.database.MySQLPlatform"/>
<!--        <property name="databasePlatform" value="org.eclipse.persistence.platform.database.OraclePlatform" />-->
    <property name="generateDdl" value="false"/>
    <property name="showSql" value="false"/>
</bean>

答案 1 :(得分:1)

要将其集成到MuleStudio中,请在MuleStudio中添加此更新站点:

http://tecnologia.2020mobile.es/jpa-cloud-connector/update-site/