简体   繁体   中英

invalid column type getint not implemented for class oracle.jdbc.driver.t4CRowidAccessor hibernate

I am using this http://howtodoinjava.com/2013/03/21/spring-3-and-hibernate-integration-tutorial-with-example/

tutorial to create a Spring + Hibernate App.But I am getting this exception while inserting data. I am using Oracle.

Could not insert : howtodoinjava.entity.EmployeeEntity

invalid column type getInt not implemented for class oracle.jdbc.driver.t4CRowidAccessor

Where in the program I am using getInt ?

EmployeeDaoImpl.java

package com.howtodoinjava.dao;

import java.util.List;

import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;

import com.howtodoinjava.entity.EmployeeEntity;

@Repository
public class EmployeeDaoImpl implements EmployeeDAO
{
    @Autowired
    private SessionFactory sessionFactory;
    @Override
    public void addEmployee(EmployeeEntity employee) {
        this.sessionFactory.getCurrentSession().save(employee);
    }
    @SuppressWarnings("unchecked")
    @Override
    public List<EmployeeEntity> getAllEmployees() {
        return this.sessionFactory.getCurrentSession().createQuery("from EmployeeEntity").list();
    }
    @Override
    public void deleteEmployee(Integer employeeId) {
        EmployeeEntity employee = (EmployeeEntity) sessionFactory.getCurrentSession().load(
                EmployeeEntity.class, employeeId);
        if (null != employee) {
            this.sessionFactory.getCurrentSession().delete(employee);
        }
    }
}

EmployeeEntity.java

package com.howtodoinjava.entity;

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

@Entity
@Table(name="EMPLOYEE")
public class EmployeeEntity 
{
    @Id
    @Column(name="ID")
    @GeneratedValue
    private Integer id;
    @Column(name="FIRSTNAME")
    private String firstname;
    @Column(name="LASTNAME")
    private String lastname;
    @Column(name="EMAIL")
    private String email;
    @Column(name="TELEPHONE")
    private String telephone;

public void setid(int id)
{
  this.id = id;
}
public int getid()
{
  return id;
}

public void setfirstname(String firstname)
{
  this.firstname = firstname;
}
public String getfirstname()
{
  return firstname;
}

public void setlastname(String lastname)
{
  this.lastname = lastname;
}
public String getlastname()
{
  return lastname;
}

public void setemail(String email)
{
  this.email = email;
}
public String getemail()
{
  return email;
}
public void settelephone(String telephone)
{
  this.telephone = telephone;
}
public String gettelephone()
{
  return telephone;
}

}

you can alternatively refer to this tutorial

http://www.ekiras.com/2015/02/maven-spring-mvc-hibernate-sitemesh-hello-world-project.html

What i think you might be missing is the getters and setters for the class, due to which it will not be able to set the values for the class variables.

There are two ways you can resolve it.

replace Integer with int in your EmployeeEntity.java

or by changing generated annotation as below in EmployeeEntity.java

@Id 
@Column(name="ID", unique = true, nullable = false) 
@**GeneratedValue(strategy=GenerationType.SEQUENCE)**

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM