Отсутствует класс 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

Банки в моем пути к классам, похоже, не имеют внутри этого класса.

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. .*** clases, но его там тоже нет.

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


person Tom    schedule 22.11.2009    source источник
comment
Пожалуйста, используйте более новую версию Hibernate. Версия должна быть выше 3.5 или лучше использовать Hibernate 4.0. Воспользуйтесь следующей ссылкой, чтобы загрузить подходящую версию sourceforge.net/projects/hibernate/files.   -  person    schedule 16.07.2012


Ответы (3)


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

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

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

с уважением Г.Д.

person Guenther Demetz    schedule 26.11.2009

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

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

Я загрузил zip-архив с пакетами OSGi 1.2.0, а затем извлек файл javax.persistence_2.0_preview.jar, который, похоже, работает с Hibernate 3.5.0 beta 2.

person Mike Houston    schedule 23.11.2009
comment
вопрос про спящий режим - person Bozho; 26.11.2009
comment
@Божо - да, и ответ о том, как заставить его работать с новым черновиком API сохранения, отсюда и упоминание 3.5 beta 2 в конце ответа ... - person Mike Houston; 26.11.2009

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

person Bozho    schedule 26.11.2009