gpt4 book ai didi

java - 写 DAO : how to override or implements the interface methods in abstract class?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:05:54 25 4
gpt4 key购买 nike

我正在使用 Spring 3.2 和 Hibernate 4。我正在使用 dao 编写持久层访问。这是dao接口(interface)代码:

public interface AbstractDao<E, I extends Serializable> {

public E findById(I id);
public void saveOrUpdate(E e);
public void delete(E e);
public List<E> findByCriteria(Criterion criterion);
}

在我写完实现接口(interface)的抽象类之后:

public abstract class AbstractDaoImpl<E, I extends Serializable> implements AbstractDao<E,I> {

private Class<E> entityClass;

protected AbstractDaoImpl(Class<E> entityClass) {
this.entityClass = entityClass;
}

@Autowired
private SessionFactory sessionFactory;

public Session getCurrentSession() {
return sessionFactory.getCurrentSession();
}

@Override
public E findById(I id) {
return (E) getCurrentSession().get(entityClass, id);
}

@Override
public void saveOrUpdate(E e) {
getCurrentSession().saveOrUpdate(e);
}

@Override
public void delete(E e) {
getCurrentSession().delete(e);
}

@Override
public List<E> findByCriteria(Criterion criterion) {
Criteria criteria = getCurrentSession().createCriteria(entityClass);
criteria.add(criterion);
return criteria.list();
}
}

我在抽象类中实现的所有方法都出现一些编译错误:findById(I id), saveOrUpdate(E e), 删除(E e) ,findByCriteria(Criterion criterion)

错误信息是:

Multiple markers at this line
- implements com.startup.app.models.hibernate.dao.AbstractDao.findById
- The method findById(I) of type AbstractDaoImpl must override a superclass method

什么错了,我不明白。谢谢。 enter image description here

最佳答案

确保您至少使用 Java 1.6 以便在这种情况下使用 @Override

在 Java 1.5 中,@Override 只能应用于覆盖父类(super class)方法的方法。

关于java - 写 DAO : how to override or implements the interface methods in abstract class?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21652509/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com