2

我使用 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

我的类路径中的 jars 里面似乎没有那个类

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.*** 类,但它也不存在。

提前致谢。

4

3 回答 3

2

如果您测试 Hibernate 3.5.0 beta 2,请不要从 1.2.0 OSGi 包 zip 中获取 javax.persistence_2.0_preview.jar,因为它不完整!例如类 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

通常建议从这个存储库中取出所有 hiberante 3hrd-party jars (repository.jboss.org/maven2/org/hibernate/)

问候GD

于 2009-11-26T10:22:14.093 回答
0

我今天早上遇到了同样的问题,最终在这个问题中找到了解决方案。

您可以从这里下载 EclipseLink JPA 2.0 预览实现。

我下载了 1.2.0 OSGi 包 zip,然后解压缩了该javax.persistence_2.0_preview.jar文件,这似乎与 Hibernate 3.5.0 beta 2 一样。

于 2009-11-23T12:43:33.877 回答
0

尝试ejb3-persistence-3.3.2.Beta1.jar在您的类路径中添加(或其他版本,如果您愿意),并删除其他 JPA jar。

于 2009-11-26T10:30:44.153 回答