Hibernate 错误
Exception in thread "main" java.lang.NoClassDefFoundError: javax/persistence/EntityListeners
at org.hibernate.cfg.annotations.reflection.JPAMetadataProvider.getDefaults(JPAMetadataProvider.java:96)
at org.hibernate.annotations.common.reflection.java.JavaReflectionManager.getDefaults(JavaReflectionManager.java:226)
at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1358)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1829)
at src.StudentTest.main(StudentTest.java:18)
Caused by: java.lang.ClassNotFoundException: javax.persistence.EntityListeners
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
... 5 more
at org.hibernate.cfg.annotations.reflection.JPAMetadataProvider.getDefaults(JPAMetadataProvider.java:96)
at org.hibernate.annotations.common.reflection.java.JavaReflectionManager.getDefaults(JavaReflectionManager.java:226)
at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1358)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1829)
at src.StudentTest.main(StudentTest.java:18)
Caused by: java.lang.ClassNotFoundException: javax.persistence.EntityListeners
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
... 5 more
我的hibernate版本是hibernate-distribution-3.6.3.Final
我的Hibernate项目要导入的jar 包有
(1)hibernate3.jar
(2)hibernate-distribution-3.6.3.Final\lib\required文件中所有jar包
(3)是从
http://www.slf4j.org/ 上下载的slf4j-1.6.1.zip 中的
slf4j-1.6.1\slf4j-nop-1.6.1.jar
(4)不要忘了在项目在要导入数据库的驱动jar包
我用的mysql ------->mysql-connector-java-5.1.15-bin.jar
测试hibernate的代码如下
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import com.test.hibernate.Student;
public class StudentTest {
public static void main(String[] args) {
Student s = new Student();
s.setId(2);
s.setName("s1");
s.setAge(1);
Student s = new Student();
s.setId(2);
s.setName("s1");
s.setAge(1);
SessionFactory sessionFactory = new Configuration().configure()
.buildSessionFactory();
Session session = sessionFactory.openSession();
Transaction tx = session.beginTransaction();
session.save(s);
tx.commit();
session.close();
.buildSessionFactory();
Session session = sessionFactory.openSession();
Transaction tx = session.beginTransaction();
session.save(s);
tx.commit();
session.close();
}
}
}
解决方法是:
javax.persistence.Cacheable 是 JPA 2.0 规范中的东西!
需要加入hibernate-distribution-3.6.3.Final\ lib\ jpa目录下的
需要加入hibernate-distribution-3.6.3.Final\ lib\ jpa目录下的
hibernate-jpa-2.0-api-1.0.0.Final.jar加到web工程的lib包下
就可以解决上面的问题!!
第一个Hibernate程序就此可以解决!
我的第一个HelloWorld程序
第一步、导入所有用的jar 包
第二步、创建一个数据库,再建一个空表Student。
第三步、在工程Helloworld中建一个Student.java文件----
创建的属性 与数据库中的表中的属性值相同,然后与建一个JavaBean一样
第四步、配置hibernate.cfg.xml
第五步、配置Student.hbm.xml
第六步、运行test代码,到数据库中可以查看结果。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/25436591/viewspace-695087/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/25436591/viewspace-695087/