I am trying to execute a basic hibernate application.However,I am consistently getting the error that is posted in the question.
Below posted is my project structure
code:
Below is the code that is present in app.java
public class app {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Session session =hibernate_utils.getSessionFactory().openSession();
session.beginTransaction();
contact contact=new contact();
contact.setFirstname("xxx");
contact.setLastname("xxx");
contact.setEmail("[email protected]");
contact.setTelephone("xxxxxxxxxx");
session.save(contact);
session.getTransaction().commit();
System.out.println("saved");
}
}
Below posted is the code that is present in the contact.java file
package net.rishanth.contact.form;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.persistence.Column;
import static javax.persistence.GenerationType.SEQUENCE;
@Entity
@Table(name = "contacts")
public class contact {
@Id
@GeneratedValue(strategy=SEQUENCE)
@Column(name = "id", unique = true, nullable = false)
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
@Column(name = "firstname", nullable = false)
public String getFirstname() {
return firstname;
}
public void setFirstname(String firstname) {
this.firstname = firstname;
}
@Column(name = "lastname", nullable = false)
public String getLastname() {
return lastname;
}
public void setLastname(String lastname) {
this.lastname = lastname;
}
@Column(name = "email", nullable = false)
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
@Column(name = "telephone", nullable = false)
public String getTelephone() {
return telephone;
}
public void setTelephone(String telephone) {
this.telephone = telephone;
}
private String firstname;
private String lastname;
private String email;
private String telephone;
private Integer id;
}
Below posted is the code for my hiber_utils class present in service package.
package net.rishanth.contact.service;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
public class hibernate_utils {
private static final SessionFactory sessionfactory= buildSessionFatory();
@SuppressWarnings("deprecation")
private static SessionFactory buildSessionFatory(){
// TODO Auto-generated method stub
return new Configuration().configure().buildSessionFactory();
}
public static SessionFactory getSessionFactory()
{
return sessionfactory;
}
public static void shutdown()
{
getSessionFactory().close();
}
}
Below present is the hibernate.cnfg.xml file
<?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.bytecode.use_reflection_optimizer">false</property>
<property
name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver
</property>
<property
name="hibernate.connection.url">jdbc:oracle:thin:@127.0.0.1:1521:XE
</property>
<property name="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect
</property>
<property name="hibernate.connection.username">system</property>
<property name="hibernate.connection.password">xxxxx</property>
<mapping class="net.rishanth.contact.form.contact"></mapping>
</session-factory>
</hibernate-configuration>
Below attached is my oracle screenshot
Any help would be highly appreciated. Thanks!
SEQUENCEis missing from the DB.SEQUENCEused for generating Contact ids.