简体   繁体   中英

Error with generics - cannot find symbol class

This is my first question. I'm beginner :-)

I have generic 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;
  }
}

and I have 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;
  }

}

When I make compile I get error:

cannot find symbol class CrudDAO

What's wrong?

Are these 2 classes from different packages? If they are, did you import CrudDAO?

If they are in the same package, kindly provide more details about the compiler error that you're getting.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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