概述
1.java.lang.ClassCastException: org.hibernate.engine.transaction.internal.jdbc.JdbcTransaction cannot be cast to javax.transaction.Transaction
问题:ssh框架web项目中Transaction发生转换异常
解决:当时sessionfactory不可用,必须用session才能使用这段代码所以要开启一级缓存,但是不知道Transaction应用的是 org.hibernate.Transaction还是import javax.transaction.Transaction;导致了这个异常换了下导入的包就可以了。
2.org.hibernate.service.UnknownServiceException: Unknown service requested [or
问题:发现是调用的两个方法,都要开启 sessionFactory .
解决:SessionFactory 重用
public class MyHibernateSessionFactory {
private final static Configuration configuration = new Configuration().configure();
private final static ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().applySettings(configuration.getProperties()).build();
private final static SessionFactory sessionFactory = configuration.buildSessionFactory(serviceRegistry);
private MyHibernateSessionFactory() {
}
public static Session getSession() {
return sessionFactory.openSession();
}
private static class SingletonHolder {
private final static MyHibernateSessionFactory INSTANCE = new MyHibernateSessionFactory();
}
public static MyHibernateSessionFactory getInstance() {
return SingletonHolder.INSTANCE;
}
}
在外部重新定义,然后在方法中调用
public Users SearchUser() {
Session session = MyHibernateSessionFactory.getSession();
Transaction tx = session.beginTransaction();
try{
//do something
}catch(Exception ex){
//do something;
}finally{
tx = null;
session.close();
}
}
原文:https://blog.csdn.net/swingyaoye/article/details/50689545
最后
以上就是还单身楼房为你收集整理的j2EE学习之hibernate—常见错误集锦的全部内容,希望文章能够帮你解决j2EE学习之hibernate—常见错误集锦所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复