Hibernate "PreInsertEvent.getSource ()" NoSuchMethodError - PullRequest
2 голосов
/ 19 мая 2009

Я получаю следующую ошибку при попытке вставить:

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

Я видел других людей с такой же проблемой из-за несовместимости в банках гибернации, но я считаю, что я правильно понял (согласно матрице совместимости )

Вот соответствующий раздел из моего pom.xml:

    <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>

Кто-нибудь может посоветовать?

Привет

Marty

Ответы [ 3 ]

4 голосов
/ 19 мая 2009

Я нашел решение, но не уверен, что оно правильное - всем, у кого лучше, пожалуйста, посоветуйте:

Добавлена ​​ссылка на cglib, исключена гибернация из-за простоты (включая 3.2)

 <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>
1 голос
/ 17 августа 2011

Это известная ошибка: https://hibernate.onjira.com/browse/HVAL-81. Это происходит, когда вы ссылаетесь на более раннюю версию средства проверки гибернации, чем на ядро.

0 голосов
/ 27 сентября 2012

Реальная проблема для меня, когда произошла эта ошибка,

  1. Зависимости Hibernate-core не было в моей EAR-упаковке.

  2. По умолчанию был выбран файл jboss.4.2.3 /.../ lib's hibernate3.jar.

  3. Просто добавив hibernate-core-3.3.1.GA в мой список зависимостей в EAR упаковка.

  4. В jboss-app.xml уже установлено переопределение загрузчиков.

  5. Исключено ядро ​​hibernate из hibernate-entitymanager-3.4.0.GA. (не думайте, что это требуется, поскольку ядро ​​будет 3.3.0.SP1 и будет опущен в любом случае).

Он работал с некоторыми исключениями некоторых уже существующих зависимостей xml-apis, ejb3-persistence и т. Д. Из ядра hibernate.

Наконец, основная зависимость выглядела следующим образом.

    <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 требуется, если он не имеет отношения к этому контексту.

Надеюсь, это кому-нибудь пригодится.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...