繁体   English   中英

类别oracle.jdbc.driver.t4CRowidAccessor休眠未实现无效的列类型getint

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

我正在使用这个http://howtodoinjava.com/2013/03/21/spring-3-and-hibernate-integration-tutorial-with-example/

创建Spring + Hibernate应用程序的教程。但是在插入数据时出现此异常。 我正在使用Oracle。

Could not insert : howtodoinjava.entity.EmployeeEntity

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

我在程序中的哪里使用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;
}

}

您也可以参考本教程

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

我认为您可能缺少的是该类的getter和setter,因此,它将无法为该类变量设置值。

有两种解决方法。

在EmployeeEntity.java中将Integer替换为int

或通过更改EmployeeEntity.java中生成的注释,如下所示

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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