【问题标题】:Hibernate 3.0 + ElementCollection class missingHibernate 3.0 + ElementCollection 类缺失
【发布时间】:2010-12-19 06:22:56
【问题描述】:

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

提前致谢。

【问题讨论】:

标签: hibernate annotations hibernate3 java


【解决方案1】:

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

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

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

【讨论】:

  • 问题是关于休眠的
  • @Bozho - 是的,答案是关于如何让它与新的持久性 API 草案一起使用,因此在答案末尾提到了 3.5 beta 2...
【解决方案2】:

别拿 javax.persistence_2.0_preview.jar 如果您测试 Hibernate 3.5.0 beta 2,则从 1.2.0 OSGi bundles zip 开始, 因为它不完整! 例如类 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 罐子从 这个存储库(repository.jboss.org/maven2/org/hibernate/)

问候 G.D.

【讨论】:

    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-13
      • 1970-01-01
      • 2016-11-10
      • 2018-01-12
      • 2012-02-16
      • 2013-05-06
      • 1970-01-01
      相关资源
      最近更新 更多