0

I am trying to configure hibernate orm mapping tool to my java class and using MySQL.When I tried to run the application, I have encountered error on my console logs as Error java.lang.ClassNotFoundException: play.db.jpa.JPABaseStatement. The hibernate version that I am using right now is version 5.4.10.

This is the error log

java.lang.ClassNotFoundException: play.db.jpa.JPABase
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Unknown Source)
    at org.hibernate.event.internal.AbstractFlushingEventListener.prepareEntityFlushes(AbstractFlushingEventListener.java:161)
    at org.hibernate.event.internal.AbstractFlushingEventListener.flushEverythingToExecutions(AbstractFlushingEventListener.java:89)
    at org.hibernate.event.internal.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:55)
    at org.hibernate.internal.SessionImpl.flush(SessionImpl.java:1195)
    at org.hibernate.internal.SessionImpl.managedFlush(SessionImpl.java:404)
    at org.hibernate.engine.transaction.internal.jdbc.JdbcTransaction.beforeTransactionCommit(JdbcTransaction.java:101)
    at org.hibernate.engine.transaction.spi.AbstractTransactionImpl.commit(AbstractTransactionImpl.java:175)
    at com.one.Test.main(Test.java:27)
java.lang.ClassNotFoundException: play.db.jpa.JPABase
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Unknown Source)
    at org.hibernate.event.internal.AbstractFlushingEventListener.prepareEntityFlushes(AbstractFlushingEventListener.java:161)
    at org.hibernate.event.internal.AbstractFlushingEventListener.flushEverythingToExecutions(AbstractFlushingEventListener.java:89)
    at org.hibernate.event.internal.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:55)
    at org.hibernate.internal.SessionImpl.flush(SessionImpl.java:1195)
    at org.hibernate.internal.SessionImpl.managedFlush(SessionImpl.java:404)
    at org.hibernate.engine.transaction.internal.jdbc.JdbcTransaction.beforeTransactionCommit(JdbcTransaction.java:101)
    at org.hibernate.engine.transaction.spi.AbstractTransactionImpl.commit(AbstractTransactionImpl.java:175)
    at com.one.Test.main(Test.java:27)
Exception in thread "main" java.lang.NoSuchMethodError: org.hibernate.Session.close()V
    at com.one.Test.main(Test.java:28)

The following is my hibernate.cfg.xml file

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration SYSTEM 
 "classpath://org/hibernate/hibernate-configuration-3.0.dtd">
 <hibernate-configuration>
 <session-factory>
 <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
 <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/demo</property>
 <property name="hibernate.connection.username">root</property>
 <property name="hibernate.connection.password">adesh@123P</property>
 <property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property>
 <property name="hbm2ddl.auto">create</property>
 <property name="show_sql">true</property>
 <mapping class="com.one.Customer"></mapping>
 <mapping class="com.one.Transection"></mapping>
 </session-factory>
 </hibernate-configuration>

My POJO class 1

package com.one;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToOne;
import javax.persistence.Table;

@Entity
@Table(name="customer")
public class Customer {
    
    @Id
    @GeneratedValue(strategy=GenerationType.AUTO)
    private int id;
    @Column(name="name")
    private String name;
    @Column(name="mobile")
    private String MobileNumber;
    
    @OneToOne(targetEntity=Transection.class,cascade=CascadeType.ALL)
    private Transection transaction;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getMobileNumber() {
        return MobileNumber;
    }

    public void setMobileNumber(String mobileNumber) {
        MobileNumber = mobileNumber;
    }

    public Transection getTransaction() {
        return transaction;
    }

    public void setTransaction(Transection transaction) {
        this.transaction = transaction;
    }
    
    
    
}

My POJO class 2

package com.one;

import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity
@Table(name="transaction")
public class Transection {
    @Id
    @GeneratedValue(strategy=GenerationType.AUTO)
    private int id;
    @Column(name="date")
    private Date date;
    @Column(name="total")
    private int total;
    
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public Date getDate() {
        return date;
    }
    public void setDate(Date date) {
        this.date = date;
    }
    public int getTotal() {
        return total;
    }
    public void setTotal(int i) {
        this.total = i;
    }
    
    
}

And my application class:

package com.one;

import java.util.Date;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import org.hibernate.Transaction;

public class Test {
    public static void main(String[] args) {
        Configuration configuration = new Configuration(); 
         configuration.configure("hibernate.cfg.xml"); 
         SessionFactory sessionFactory = configuration.buildSessionFactory(); 
         Session session = sessionFactory.openSession(); 
         Transaction transaction = session.beginTransaction(); 
         
         Customer customer = new Customer(); 
         customer.setName("sohan"); 
         customer.setMobileNumber("7575858595"); 
         Transection transection = new Transection(); 
         transection.setDate(new Date()); 
         transection.setTotal(5000); 
         customer.setTransaction(transection); 
         session.save(customer);
         
         transaction.commit(); 
         session.close(); 
         sessionFactory.close(); 
    }
}

The following is the image of java hibernate structure

Maven files

Adesh Patil
  • 1
  • 1
  • 1

1 Answers1

0

Are you sure you are using the Play framework? I don't see any mentions of it except your dependency name. If not, and you are simply trying to write some simple code with hibernate, use original artifact hibernate-core