Hibernate 3.0 + класс ElementCollection отсутствует

Я создал небольшой настольный проект с использованием Hibernate, чтобы понять, как там применяются шаблоны предприятия.

Я использую аннотации и написал класс, чтобы обернуть мою фабрику сессий

public class Hibernation {

    private static final SessionFactory sessionFactory;

    static{
        try{
            //sesionFactory = new org.hibernate.cfg.Configuration().configure().buildSessionFactory();
            sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory();
        }
        catch(Throwable e){
            throw new ExceptionInInitializerError(e);
        }
    }

    public static Session getSession(){
        return sessionFactory.openSession();
    }

}

Однако всякий раз, когда я пытаюсь запустить его, я получаю эту ошибку:

Вызывается: java.lang.ClassNotFoundException: javax.persistence.ElementCollection

У банок в моем classpath, кажется, нет того класса в них

hibernate3.jar
jpa.jar
log4j-1.2.15.jar
persistence-api-1.0.jar
slf4j-log4j12-1.0.1.jar

Я искал этот класс, но не могу найти, где его скачать. Есть идеи, какой файл jar мне не хватает? Я заглянул внутрь javaee.jar, где много предложений javax.persistence.***, но его там тоже нет.

Заранее спасибо.

3 ответа

Решение

Не берите javax.persistence_2.0_preview.jar из 1.2.0 пакетов OSGi zip, если вы тестируете Hibernate 3.5.0 beta 2, потому что он не завершен! Например, там отсутствует класс javax.persistence.criteria.CriteriaBuilder.

Возьмите следующий jar-файл: http://repository.jboss.org/maven2/org/hibernate/java-persistence/jpa-api/2.0-cr-1/jpa-api-2.0-cr-1.jar

Как правило, рекомендуется извлекать из этого репозитория все сторонние файлы hiberante (repository.jboss.org/maven2/org/hibernate/).

С уважением GD

Попробуйте ejb3-persistence-3.3.2.Beta1.jar (или другую версию, если хотите) на вашем пути к классам и удалите другие файлы JPA.

У меня была такая же проблема сегодня утром, и в конце концов я нашел решение в этом вопросе.

Вы можете скачать предварительную версию EclipseLink JPA 2.0 здесь.

Я скачал zip-комплекты OSGi 1.2.0, а затем распаковал javax.persistence_2.0_preview.jar файл, который, кажется, делает трюк с Hibernate 3.5.0 beta 2.

Другие вопросы по тегам