当前位置: 首页 > 知识库问答 >
问题:

在3.4.0 CE中使用mule-module-jpa 1.2.0和Hibernate。如何定义EntityManager?

傅志文
2023-03-14

有人能给我指出一个适用于Mule3.4CE的mule-module-jpa的工作示例吗?

我的maven deps确实包含了相关的Hibernate内容,并且在Studio下运行时,我确实看到了JAR包含在输出目录中。但是mule classloader似乎不能找到它们...或者我不知道需要什么。

我尝试了几种Hibernate和Spring-orm版本的组合,目前正在使用每种版本的最新版本:

<spring.version>4.0.0.RELEASE</spring.version>
<hibernate.version>4.2.2.Final</hibernate.version>

我的pom的相关部分看起来像:

<dependencies>
...
      <dependency>
        <groupId>org.mule.modules</groupId>
        <artifactId>mule-module-jpa</artifactId>
        <version>1.2.0</version>
    </dependency>
     <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-core</artifactId>
        <version>${hibernate.version}</version> 
    </dependency>
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-entitymanager</artifactId>
        <version>${hibernate.version}</version>    
    </dependency>
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-validator-annotation-processor</artifactId>
        <version>4.1.0.Final</version>
    </dependency>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.26</version>
    </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-tx</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-orm</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>${spring.version}</version>
        </dependency>
</dependencies>


<plugins>
...
<plugin>
                <groupId>org.mule.tools</groupId>
                <artifactId>maven-mule-plugin</artifactId>
                <version>1.9</version>
                <extensions>true</extensions>
                <configuration>
                    <copyToAppsDirectory>true</copyToAppsDirectory>
                <inclusions>
                        <inclusion>
                            <groupId>org.mule.modules</groupId>
                            <artifactId>mule-module-jpa</artifactId>
                        </inclusion>
                    </inclusions>
                </configuration>
            </plugin>
</plugins>
<?xml version="1.0" encoding="UTF-8"?>
<mule version="CE-3.4.0"
xmlns:http="http://www.mulesoft.org/schema/mule/http" 
xmlns:jpa="http://www.mulesoft.org/schema/mule/jpa" 
xmlns="http://www.mulesoft.org/schema/mule/core" 
xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
xmlns:spring="http://www.springframework.org/schema/beans" 
xmlns:util="http://www.springframework.org/schema/util"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-current.xsd
http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd
http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
http://www.mulesoft.org/schema/mule/jpa http://www.mulesoft.org/schema/mule/jpa/1.0/mule-jpa.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.1.xsd
">

      <spring:beans>
      <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/test"/>
        <spring:property name="username" value="XXXX"/>
        <spring:property name="password" value="XXXX"/>
    </spring:bean>

    <spring:bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
        <spring:property name="dataSource" ref="datasource"/>
        <spring:property name="jpaVendorAdapter">
            <spring:bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
                <spring:property name="showSql" value="true"/>
                <spring:property name="generateDdl" value="false"/>
                <spring:property name="databasePlatform" value="org.hibernate.dialect.MySQL5Dialect"/>
            </spring:bean>
        </spring:property>
    </spring:bean>
    </spring:beans>

    <jpa:config name="Java_Persistence_API" entityManagerFactory-ref="entityManagerFactory" doc:name="Java Persistence API"/>

    <flow name="jpa_test2Flow1" doc:name="jpa_test2Flow1">
        <http:inbound-endpoint exchange-pattern="request-response" host="localhost" port="8081" path="query" doc:name="HTTP"/>
        <logger level="INFO" doc:name="Logger"/>
        <jpa:find config-ref="Java_Persistence_API" entityClass="domain.Dog" id-ref="#[message.payload.name]" doc:name="Java Persistence API"/>
    </flow>
</mule>

共有1个答案

东郭鹤龄
2023-03-14

想想看,mule已经包含了一些hibernate-core和Hibernate-JPA。错误可能是由冲突引起的。尝试验证未找到的类是否已经在这些JAR中。

加布里埃尔

 类似资料:
  • 问题内容: 我正在尝试将我的命名查询放入orm.xml(与persistence.xml一起放入META-INF中),但是hibernate / jpa似乎忽略了我的orm.xml。 当我尝试使用em.createNamedQuery(“ myQuery”)创建命名查询时,它返回找不到该查询的信息。 我使用注释,我想在orm.xml中外部化我的命名查询(仅此)。 这是我的persistence.x

  • 旧式的模块定义方式是通过 module("filename"[,package.seeall])* 来显式声明一个包,现在官方不推荐再使用这种方式。这种方式将会返回一个由 filename 模块函数组成的 table,并且还会定义一个包含该 table 的全局变量。 module("filename", package.seeall) 这种写法是不提倡的,官方给出了两点原因: package.se

  • 我正在使用IText7从html字符串生成pdf。现在,我需要对段落应用自定义颜色和自定义字体或字体系列。 如何使用Itext7实现这一点? 谢谢

  • 我想使用hibernate对距离进行排序,但“st_distance”不起作用。日志: ----org.hibernate.queryexception:node:org.hibernate.hql.internal.ast.tree.methodnode-[METHOD_CALL]methodnode:'('+-[METHOD_NAME]identnode:'st_distance‘{Origi

  • 我知道如何在SparkSQL中编写UDF: 我可以做类似的事情来定义聚合函数吗?这是怎么做到的? 对于上下文,我想运行以下SQL查询: 它应该会返回类似于 我希望聚合函数告诉我,在由< code>span和< code>timestamp定义的组中,是否有任何< code>opticalReceivePower的值低于阈值。我需要把我的UDAF写得和我上面粘贴的UDF不同吗?

  • 问题内容: 我有两个课程,和,如下所示: 如何为这些类使用Hibernate 4的批注实现一个(单向/双向)一对多,多对一或多对多关系? 另外,我该如何配置我的一对多对象以移除孤儿,延迟加载以及在处理集合时会导致a的原因以及如何解决问题? 问题答案: 我有两个课程,和,如下所示: 创建带注释的关系 假定所有带有@Entity和注释的类@Table 单向一对一关系 由Foo.class管理的双向一对