【问题标题】:java.lang.AbstractMethodError When buildind session factoryjava.lang.AbstractMethodError 构建 sessionfactory 时
【发布时间】:2015-11-16 21:07:04
【问题描述】:

当我尝试构建会话工厂对象时出现异常。我的hibernate.cfg.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
  <session-factory>
    <property name="hibernate.connection.driver_class">com.microsoft.sqlserver.jdbc.SQLServerDriver</property>
    <property name="hibernate.connection.url">jdbc:sqlserver://localhost:1433;databaseName=lotusinvest_db</property>
    <property name="hibernate.connection.username">sa</property>
    <property name="hibernate.connection.password">123456</property>
    <property name="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</property>
    <property name="hibernate.show_sql">true</property>
    <property name="hibernate.current_session_context_class">thread</property>
  </session-factory>
</hibernate-configuration>

HibernateConfiguration 类:

public class HibernateConfiguration {

    private static final SessionFactory sessionFactory = buildSessionFactory();

    private static SessionFactory buildSessionFactory() {
        SessionFactory SessionFactory = null;
        try {
            Configuration configuration = new Configuration();
            configuration.configure();
            StandardServiceRegistryBuilder ssrb = new StandardServiceRegistryBuilder().applySettings(configuration.getProperties());
            StandardServiceRegistry registry=ssrb.build();
            SessionFactory = configuration.buildSessionFactory(registry);
        } catch (Throwable ex) {
            System.err.println("Failed to create sessionFactory object." + ex);
            ex.printStackTrace();
        }
        return SessionFactory;
    }

    public static SessionFactory getSessionFactory() {
        return sessionFactory;
    }

    public static Session openSession() {
        return sessionFactory.openSession();
    }

    public static void shutdown() {
        getSessionFactory().close();
    }

    public static void main(String[] args) {
    }
}

当我尝试运行程序时,我在SessionFactory = configuration.buildSessionFactory(registry) 行收到异常java.lang.AbstractMethodError。我该如何解决?

【问题讨论】:

  • 请添加完整的堆栈跟踪?
  • 你能解决这个问题吗?我也遇到了同样的问题。
  • 您的类 'SessionFactory' 和实例变量 'SessionFactory' 不应该相同。将实例变量更改为“sessionFactory”(以小写开头_

标签: hibernate session sessionfactory


【解决方案1】:

你的类和你的实例变量是相同的。 我已经重命名了实例

private static SessionFactory buildSessionFactory() {
    SessionFactory sessionFactoryInstance = null;
    try {
        Configuration configuration = new Configuration();
        configuration.configure();
        StandardServiceRegistryBuilder ssrb = new StandardServiceRegistryBuilder().applySettings(configuration.getProperties());
        StandardServiceRegistry registry=ssrb.build();
        sessionFactoryInstance = configuration.buildSessionFactory(registry);
    } catch (Throwable ex) {
        System.err.println("Failed to create sessionFactory object." + ex);
        ex.printStackTrace();
    }
    return sessionFactoryInstance;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-02-26
    • 1970-01-01
    • 2012-07-07
    • 2018-03-22
    • 2015-05-19
    • 2017-04-10
    • 2018-06-04
    • 2015-06-29
    相关资源
    最近更新 更多