【发布时间】:2015-04-16 10:24:26
【问题描述】:
我最近一直在做spring+hibernate+mysql的集成。为此,我尝试构建一个添加,编辑,删除和搜索学生的基本程序。我首先创建了模型类并添加了必要的JPA注释:
package com.joseph.model;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
@Entity
public class Student {
@Id
@Column
@GeneratedValue(strategy=GenerationType.AUTO) // for autonumber
private int studentId;
@Column
private String firstname;
@Column
private String lastname;
@Column
private int yearLevel;
public Student(){}
public Student(int studentId, String firstname, String lastname,
int yearLevel) {
super();
this.studentId = studentId;
this.firstname = firstname;
this.lastname = lastname;
this.yearLevel = yearLevel;
}
/* Getters and Setters */
}
然后我构造了DAO接口:
package com.joseph.dao;
import java.util.List;
import com.joseph.model.Student;
public interface StudentDao {
public void add(Student student);
public void edit(Student student);
public void delete(int studentId);
public Student getStudent(int studentId);
public List getAllStudent();
}
为了从 SQL 中获取必要的数据,我实现了 dao 接口如下:
package com.joseph.dao.impl;
import java.util.List;
import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import com.joseph.dao.StudentDao;
import com.joseph.model.Student;
@Repository
public class StudentDaoImpl implements StudentDao {
@Autowired
private SessionFactory session;
@Override
public void add(Student student) {
session.getCurrentSession().save(student);
}
@Override
public void edit(Student student) {
session.getCurrentSession().update(student);
}
@Override
public void delete(int studentId) {
session.getCurrentSession().delete(getStudent(studentId));
}
@Override
public Student getStudent(int studentId) {
return (Student)session.getCurrentSession().get(Student.class, studentId);
}
@Override
public List getAllStudent() {
return session.getCurrentSession().createQuery("from Student").list();
}
}
但我在 StudentDaoImpl.java 类的 add(Student student) 方法中出现错误:
此行有多个标记 - StudentDaoImpl 类型的方法 add(Student) 必须覆盖或实现超类型方法 - 实现 com.joseph.dao.StudentDao.add
对于同一类中的所有其他方法,此错误类似。 我该如何解决这个问题?
【问题讨论】:
-
我没有看到任何与代码和平相关的大错误。尝试重启IDE或者重新导入你的项目,可能是IDE问题。