首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Hibernate "PreInsertEvent.getSource()“NoSuchMethodError

Hibernate "PreInsertEvent.getSource()“NoSuchMethodError
EN

Stack Overflow用户
提问于 2009-05-19 12:05:29
回答 3查看 10.4K关注 0票数 2

当尝试执行插入时,我将收到以下错误:

org.hibernate.event.PreInsertEvent.getSource()Lorg/hibernate/event/EventSource;:java.lang.NoSuchMethodError

我见过其他的人由于hibernate jars不兼容而有同样的问题,但我相信我做得对(根据相容矩阵)

以下是我的pom.xml中的相关部分:

代码语言:javascript
复制
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-annotations</artifactId>
        <version>3.4.0.GA</version>
    </dependency>
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-commons-annotations</artifactId>
        <version>3.3.0.ga</version>
    </dependency>
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-core</artifactId>
        <version>3.3.1.GA</version>
    </dependency>
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-validator</artifactId>
        <version>3.1.0.GA</version>
    </dependency>
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-entitymanager</artifactId>
        <version>3.4.0.GA</version>
    </dependency>

有人能告诉我吗?

问候

马蒂

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-05-19 17:48:16

我找到了一个解决方案,但我不确定它是否正确--任何有更好答案的人,请告诉我:

添加了对cglib的引用,并排除了hibernate ( to包括3.2)

代码语言:javascript
复制
 <dependencies>
    <dependency>
        <groupId>cglib</groupId>
        <artifactId>cglib</artifactId>
        <version>2.2</version>
    </dependency>
    <dependency>
        <groupId>commons-lang</groupId>
        <artifactId>commons-lang</artifactId>
        <version>2.3</version>
    </dependency>
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-annotations</artifactId>
        <version>3.4.0.GA</version>
    </dependency>
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-commons-annotations</artifactId>
        <version>3.3.0.ga</version>
        <exclusions>
            <exclusion>
                <groupId>org.hibernate</groupId>
                <artifactId>hibernate</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-core</artifactId>
        <version>3.3.1.GA</version>
    </dependency>
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-validator</artifactId>
        <version>3.1.0.GA</version>
    </dependency>
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-entitymanager</artifactId>
        <version>3.4.0.GA</version>
    </dependency>

    <dependency>
        <groupId>commons-lang</groupId>
        <artifactId>commons-lang</artifactId>
        <version>2.3</version>
    </dependency>
    <dependency>
        <groupId>commons-collections</groupId>
        <artifactId>commons-collections</artifactId>
        <version>3.2.1</version>
    </dependency>
</dependencies>
票数 4
EN

Stack Overflow用户

发布于 2011-08-17 15:12:18

这是一个已知的bug:https://hibernate.onjira.com/browse/HVAL-81。当引用比core更早版本的hibernate验证器时,就会发生这种情况。

票数 1
EN

Stack Overflow用户

发布于 2012-09-26 20:35:41

当这个错误发生时,我的实际问题是

  1. Hibernate-核心依赖没有在我的耳朵包装。
  2. 默认情况下,它选择的是jboss.4.2.3/./lib的hibernate3.jar。
  3. 只是将hibernate-core-3.3.1.GA添加到EAR打包中的依赖项列表中。
  4. 已经在jboss-app.xml中设置了加载器的覆盖。
  5. 从hibernate实体管理器中排除hibernate-core -3.4.0.GA(不要认为这是必需的,因为提供的核心将是3.3.0.SP1,无论如何都会被省略)。

它适用于一些已经存在的xml、ejb3-persistence等来自hibernate核心的排除。

最后,核心依赖关系如下所示。

代码语言:javascript
复制
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-core</artifactId>
        <version>3.3.1.GA</version>
          <exclusions>
            <exclusion>
                <artifactId>ejb3-persistence</artifactId>
                <groupId>org.hibernate</groupId>
            </exclusion>
            <exclusion>
                <artifactId>jta</artifactId>
                <groupId>javax.transaction</groupId>
            </exclusion>
            <exclusion>
                <artifactId>persistence-api</artifactId>
                <groupId>javax.persistence</groupId>
            </exclusion>
            <exclusion>
                <groupId>xml-apis</groupId>
                <artifactId>xml-apis</artifactId>
            </exclusion>
        </exclusions>
    </dependency>

注意:我不认为cglib是必需的,因为它与这个上下文无关。

希望这对某人有用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/882338

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档