0

I am trying to learn Hibernate with a Lynda course. I'm having trouble trying to do the first application of HelloWorld. I am getting an error regarding session factory object.

Here is my HelloWorldExample

package helloworldexample;

import java.util.Iterator;
import java.util.List;
import java.util.Scanner;    
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;

public class HelloWorldExample {
private static SessionFactory factory;
private static ServiceRegistry registry;

public static void main(String[] args) {
    Scanner in = new Scanner(System.in);
    String m = "";
    System.out.println("Enter a message: ");
    m = in.nextLine();

    try{
        Configuration conf = new Configuration().configure();
        registry = new StandardServiceRegistryBuilder().applySettings(
        conf.getProperties()).build();
        factory = conf.buildSessionFactory(registry);

    } catch (Throwable ex){
        System.err.println("Failed to create session factory object"+ex);
        throw new ExceptionInInitializerError(ex);
    }

    Session session = factory.openSession();
    Transaction tx = null;
    Short msgId = null;
    try{
        tx=session.beginTransaction();
        Message msg = new Message(m);
        msgId = (Short) session.save(msg);
        List messages = session.createQuery("FROM Message").list();
        for(Iterator iterator = messages.iterator(); iterator.hasNext();){
            Message message = (Message)iterator.next();
            System.out.println("message: "+message.getMessage());
        }
        tx.commit();
    }catch(HibernateException e){
        if(tx != null) tx.rollback();
        e.printStackTrace();
    }finally{
        session.close();
    }
StandardServiceRegistryBuilder.destroy(registry);
}

}

Here is my 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.dialect">org.hibernate.dialect.MySQLDialect   </property>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver   </property>
<property     name="hibernate.connection.url">    jdbc:mysql://localhost:3306/messagerepository?     zeroDateTimeBehavior=convertToNull
</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">admin</property>
<property name="hibernate.show_sql">true</property>
<property name="hibernate.current_session_context_class">thread</property>
<property name="hibernate.query.factory_class">org.hibernate.hql.internal.classic.ClassicQueryTranslatorFactory</property>
<mapping resource="helloworldexample/Message.hbm.xml"/>

Here is my Message.java

package helloworldexample;

public class Message  implements java.io.Serializable {


 private Short id;
 private String message;

public Message() {
}

public Message(String message) {
   this.message = message;
}

public Short getId() {
    return this.id;
}

public void setId(Short id) {
    this.id = id;
}
public String getMessage() {
    return this.message;
}

public void setMessage(String message) {
    this.message = message;
}
}

Here is my Message.hbm.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD     3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<!-- Generated Jan 9, 2017 10:28:21 AM by Hibernate Tools 4.3.1 -->
<hibernate-mapping>
<class name="helloworldexample.Message" table="message"     catalog="messagerepository" optimistic-lock="version">
    <id name="id" type="java.lang.Short">
        <column name="id" />
        <generator class="identity" />
    </id>
    <property name="message" type="string">
        <column name="message" length="50" />
    </property>
</class>
</hibernate-mapping>

Does anyone have any ideas?

Cheers

Richard
  • 1
  • 2

0 Answers0