0

I am trying with hibernate 4.1 . I configure settings by seeing this but still, I am getting session factory impl Abstract method error. Here is my code and I am using maven for downloading jars

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.archive.autodetection">class,hbm</property>  
        <property name="hibernate.dialect">org.hibernate.dialect.HSQLDialect</property>  
        <property name="hibernate.show_sql">true</property>    
        <property name="hibernate.connection.driver_class">org.hsqldb.jdbcDriver</property>    
        <property name="hibernate.connection.username">SA</property>    
        <property name="hibernate.connection.password"></property>    

        <property name="hibernate.hbm2ddl.auto">create</property>    
        <mapping class="main.java.entity.Advocate"></mapping>
            <mapping class="main.java.entity.Case"></mapping>
    </session-factory>
</hibernate-configuration>

This my config class:

package main.java.service;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;
import org.hibernate.service.ServiceRegistryBuilder;

import main.java.businessTier.CaseTO;
import main.java.entity.Advocate;
import main.java.entity.Case;

public class LegalService {


 Configuration configuration = new Configuration().configure();

      ServiceRegistry  serviceRegistry = new ServiceRegistryBuilder().applySettings(
                configuration.getProperties()). buildServiceRegistry();
     SessionFactory   sessionFactory = configuration.buildSessionFactory(serviceRegistry);

    Session session;

    public int registerCase(CaseTO caseTO) {
           session=sessionFactory.openSession();
           session.beginTransaction();

        Case c = new Case();
        Advocate a = new Advocate();
         a.setAdvocateId(caseTO.getAdvocateId());
        c.setAdvocate(a);
        c.setClientAge(caseTO.getClientAge());
        c.setClientName(caseTO.getClientName());
        c.setDate(caseTO.getDate());
        c.setDescription(caseTO.getDescription());
        session.persist(c);
        session.getTransaction().commit();
        return c.getCaseNo();



    }

}

Error:

Exception in thread "main" java.lang.AbstractMethodError
    at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:306)
    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1744)
    at main.java.service.LegalService.<init>(LegalService.java:23)
Community
  • 1
  • 1
LowCool
  • 1,187
  • 5
  • 25
  • 51
  • which version of hibernate you are using and which line is 23 in `LegalService` – M Sach Mar 15 '16 at 06:04
  • m using hibernate 4.1.4 and :"SessionFactory sessionFactory = configuration.buildSessionFactory(serviceRegistry)" this is line 23 – LowCool Mar 15 '16 at 06:16
  • Are you using hibernate core 4.1.4 jar? And please share version of hsql. I tried hibernate core 4.1.0.Final version jar and hsql 2.3.2 jar, it worked perfectly fine for me – Reena Upadhyay Mar 15 '16 at 06:38
  • here is my pom m using 4.1.4 FINAL and hsql version 2.3.3. org.hibernate hibernate-core 4.1.4.Final org.hibernate hibernate-envers 5.1.0.Final org.hsqldb hsqldb 2.3.3 – LowCool Mar 15 '16 at 06:54
  • Chek this http://stackoverflow.com/questions/32448957/abstractmethoderror-in-sessionfactoryimpl-when-upgrading-to-hibernate-5 – Viswanath Lekshmanan Mar 15 '16 at 06:56
  • Not the JPA API. Kindly do not tag it as that. – Neil Stockton Mar 15 '16 at 07:17

1 Answers1

0

hibernate-envers dependency in your pom.xml is creating issue. Please remove hibernate-envers dependency from you pom.xml

Use only hibernate-core and hsql dependency.

<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-core</artifactId>
    <version>4.1.4.Final</version>
</dependency>

<dependency>
    <groupId>org.hsqldb</groupId>
    <artifactId>hsqldb</artifactId>
    <version>2.3.3</version>
</dependency>

It will work then. Let me know, if it worked or not. At my end it worked.

Reena Upadhyay
  • 1,977
  • 20
  • 35