'Caused by: java.sql.SQLSyntaxErrorException: Table 'project.playing' doesn't exist [duplicate]

error: Caused by: java.sql.SQLSyntaxErrorException: Table 'project.playing' doesn't exist at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120) at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97) at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122) at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:953) at com.mysql.cj.jdbc.ClientPreparedStatement.executeUpdateInternal(ClientPreparedStatement.java:1092) at com.mysql.cj.jdbc.ClientPreparedStatement.executeUpdateInternal(ClientPreparedStatement.java:1040) at com.mysql.cj.jdbc.ClientPreparedStatement.executeLargeUpdate(ClientPreparedStatement.java:1347)

In eclipse using maven project trying to create a table(playing) in the existind mysql databse(project) using hibernate . entity class code:

package com.rj.hibtry.entity;

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

@Entity
@Table(name = "playing")
public class Users {

    @Id
    @Column(name = "user_id")
    int userId;

    @Column(name = "username")
    String username;

    @Column(name = "password")
    String password;

    @Column(name = "first_name")
    String firstName;

    @Column(name = "last_name")
    String lastName;


    public Users(String username, String password, String firstName, String lastName) {
        this.username = username;
        this.password = password;
        this.firstName = firstName;
        this.lastName = lastName;
    }

    public int getUserId() {
        return userId;
    }

    public void setUserId(int userId) {
        this.userId = userId;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getFirstName() {
        return firstName;
    }

    public void setFirstName(String firstName) {
        this.firstName = firstName;
    }

    public String getLastName() {
        return lastName;
    }

    public void setLastName(String lastName) {
        this.lastName = lastName;
    }

}

main method code:

package com.rj.hibtry;

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

import com.rj.hibtry.entity.Users;

public class App {

    public static void main(String[] args) {
          SessionFactory factory=new Configuration()
                  .configure("hibernate.cfg.xml")
                  .addAnnotatedClass(Users.class)
                  .buildSessionFactory();
          Session session=factory.getCurrentSession();
          try {
              // Create object of entity class type
              Users user = new Users("lj", "password", "firstName", "lastName");
              // Start transaction
              session.beginTransaction();
              // Perform operation
              session.save(user);
              // Commit the transaction 
              session.getTransaction().commit();
              System.out.println("Row added!");


        } finally {
            session.close();
            factory.close();
        }


      }
}

hibernate.cfg.xml codes:

<!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">

<hibernate-configuration>
    <session-factory>

        <!-- Connection settings -->

        <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
              <!-- Sample MySQL URL provided  -->  
        <property name="connection.url">jdbc:mysql://localhost:3306/project?serverTimezone=UTC</property>
        <property name="connection.username">root</property>
        <property name="connection.password"></property>
        <property name="hbm2ddl.auto">create</property>

        <!-- Show SQL on console -->
        <property name="show_sql">true</property>



        <!--Setting Session context model -->
        <property name="current_session_context_class">thread</property>

    </session-factory>
</hibernate-configuration>



Solution 1:[1]

People who are using MySQL above 4.0 version they need to change the dialect in the configuration file. "org.hibernate.dialect.MySQLDialect" will work till version 4.0, above that you need to use "org.hibernate.dialect.MySQL5Dialect"

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 mohd shuaib