![](/img/trans.png)
[英]nested exception is java.lang.NoClassDefFoundError: Could not initialize class com.my.util.HibernateUtil
[英]java.lang.NoClassDefFoundError: Could not initialize class business.HibernateUtil
我正在尝试从表中获取数据,我正在使用以下代码从数据库中获取数据。
public List<UserInfoSetting> fetchAll(Long aid) {
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
Transaction tx = session.beginTransaction();
List<UserInfoSetting> obj = null;
try {
String hql = "select s from UserInfoSetting s where s.atom.id=:aid ";
Query query = session.createQuery(hql);
query.setParameter("aid", aid);
obj = query.list();
tx.commit();
} catch (HibernateException e) {
if (tx != null) {
tx.rollback();
}
} finally {
session.close();
}
return obj;
}
HibernateUtil.java
public class HibernateUtil {
private static final SessionFactory sessionFactory;
static {
try {
sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory();
} catch (Throwable ex) {
System.err.println("Initial SessionFactory creation failed." + ex);
throw new ExceptionInInitializerError(ex);
}
}
public static SessionFactory getSessionFactory() {
return sessionFactory;
}
}
它显示以下异常
根本原因
java.lang.NoClassDefFoundError: Could not initialize class business.HibernateUtil
setting.user.UserCommunicationDao.fetchAll(UserCommunicationDao.java:146)
setting.user.UserCommunication.fetchAll(UserCommunication.java:64)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
java.lang.reflect.Method.invoke(Method.java:483)
如何解决以上问题
这意味着要么您的类路径中没有所有正确的Hibernate库,要么不包括您编写的类。 如果您使用Eclipse进行编码,请找到项目设置并将Hibernate库添加为项目的依赖项。
您将需要添加hibernate-core
,但也需要添加许多其他内容。
Maven会帮助...
如果您更改HibernateUtil
类的名称,这将对您有很大帮助:存在一个具有相同名称的标准Hibernate类。 尽管原则上可以有两个具有相同名称的类,但使用不同的包,但这可能会引起混淆。 (例如,尚不清楚它找不到哪一个。)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.