0

这是我的第一个问题。我是初学者:-)

我有通用 DAO ( CrudDao):

public class CrudDAO<T> {

  @PersistenceContext
  protected EntityManager em;

  private Class<T> classePersistencia;

  public CrudDAO() {
    this.setClassePersistencia((Class<T>) ((ParameterizedType)
        getClass().getGenericSuperclass()).getActualTypeArguments()[0]);
  }

  public T salvar(T entity) {
    em.persist(entity);
    return entity;
  }

  public T alterar(T entity) {
    return em.merge(entity);
  }

  public void excluir(T entity) {
    em.remove(entity);
  }

  public T buscarPorId(Long id) {
    return (T) em.find(getClassePersistencia(), id);
  }

  public List<T> buscarTodos(){
    return em.createQuery("from " + getClassePersistencia().getName()).getResultList();
  }

  /*Getter e Setter*/

  public Class<T> getClassePersistencia() {
    return classePersistencia;
  }

  public void setClassePersistencia(Class<T> classePersistencia) {
    this.classePersistencia = classePersistencia;
  }
}

我有DiasService

public class DiasService extends CrudDAO<Dias> implements IdiasService {

  @Transactional(readOnly = true)
  public Dias buscaPorId(Long id) {
    return (Dias) super.buscarPorId(id);
  }

  @Transactional(readOnly = false)
  public Dias salvar(Dias dia) {
    return (Dias) super.salvar(dia);
  }

  @Transactional(readOnly = false)
  public Dias alterar(Dias dia) {
    return (Dias) super.alterar(dia);
  }

  @Transactional(readOnly = false)
  public void excluir(Dias dia) {
    super.excluir(dia);
  }

  @Transactional(readOnly = true)
  public List<Dias> buscaPorPeriodo(Date inicio, Date fim) {
    return null;
  }

  @Transactional(readOnly = false)
  public List<Dias> buscaTodos() {
    return super.buscarTodos();
  }

  @Transactional(readOnly = true)
  public Dias buscaPorData(Date data) {
    return null;
  }

}

当我编译时出现错误:

cannot find symbol class CrudDAO

怎么了?

4

1 回答 1

0

这两个类是否来自不同的包?如果是,您是否导入了 CrudDAO?

如果它们在同一个包中,请提供有关您遇到的编译器错误的更多详细信息。

于 2013-05-04T21:06:25.810 回答