我使用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
我的类路径中的jar似乎没有其中的类
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,但它也没有。
提前致谢。
答案 0 :(得分:2)
不要拿 javax.persistence_2.0_preview.jar 如果你测试Hibernate 3.5.0 beta 2,从1.2.0 OSGi捆绑zip 因为它不完整! 例如,那里缺少类javax.persistence.criteria.CriteriaBuilder。
一般情况下,建议将所有hiberante 3hrd-party罐子从中取出 这个存储库(repository.jboss.org/maven2/org/hibernate /)
问候 G.D。
答案 1 :(得分:0)
今天早上我遇到了同样的问题,最终在this question找到了解决方案。
您可以从here下载EclipseLink JPA 2.0预览实现。
我下载了1.2.0 OSGi捆绑包zip,然后提取了javax.persistence_2.0_preview.jar
文件,这似乎与Hibernate 3.5.0 beta 2有关。
答案 2 :(得分:0)
尝试在类路径中使用ejb3-persistence-3.3.2.Beta1.jar
(或其他版本,如果您愿意),并删除其他JPA jar。