我正在使用它 http://howtodoinjava.com/2013/03/21/spring-3-and-hibernate-integration-tutorial-with-example/
创建Spring + Hibernate App的教程。但是我在插入数据时遇到了这个异常。我正在使用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;
}
}
答案 0 :(得分:0)
您也可以参考本教程
http://www.ekiras.com/2015/02/maven-spring-mvc-hibernate-sitemesh-hello-world-project.html
我认为你可能缺少的是该类的getter和setter,因此它无法设置类变量的值。
答案 1 :(得分:0)
有两种方法可以解决它。
将整数替换为EmployeeEntity.java中的 int
或通过更改EmployeeEntity.java中的生成注释
@Id
@Column(name="ID", unique = true, nullable = false)
@**GeneratedValue(strategy=GenerationType.SEQUENCE)**