2009-11-22 47 views
2

我使用Hibernate创建了一个小型桌面项目,以了解企业模式在那里的应用方式。Hibernate 3.0 + ElementCollection类缺失

我使用的注释,并写了一个类来包装我的会话工厂

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。***类,但它们不在那里。

在此先感谢。

+0

请使用较新版本的Hibernate。 该版本应该大于3.5或更好地使用Hibernate 4.0。 请使用以下链接下载合适的版本http://sourceforge.net/projects/hibernate/files/ – 2012-07-16 10:02:59

回答

2

不采取 javax.persistence_2.0_preview。 jar from 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 3hrd方罐出从 这个软件库(repository.jboss.org/maven2/org/hibernate/)

问候 GD

+0

+1谢谢,不知道那里有... – 2009-11-26 11:15:25

+0

谢谢。有用。 – alok 2016-09-25 13:05:28

0

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

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

我下载了1.2.0 OSGi包拉链,然后提取javax.persistence_2.0_preview.jar文件,这似乎这样的伎俩与Hibernate 3.5.0 Beta 2中

+0

这个问题是关于休眠 – Bozho 2009-11-26 10:27:59

+0

@Bozho - 是的,答案是关于如何让它与新的持久性API草案,因此在答案的末尾提及3.5测试版2 ... – 2009-11-26 11:11:38

0

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