Olá,
uma duvida referente ao um exemplo que estava vendo sobre DAO generico
e pintou uma duvida referente a linha class abstrata AbstractBaseDao
onde tem T “classe generica” com extends Entity , isso não entendi esse extends para Entity ???
e qual a finalidade da anotação :
- @SuppressWarnings(“unchecked”)
alguém poderia me ajudar nessa duvida ???
abs
/**
* Classe abstrata que define um DAO base com as funcionalidades básicas utilizadas por um sistema CRUD
* (Create, Retrieve, Update e Delete).
*
* @see BaseDao
*/
public abstract class AbstractBaseDao<T extends Entity, ID extends Serializable> extends JpaDaoSupport implements BaseDao<T, ID> {
protected final static Long METHOD_FIND_BY_ID = 0L;
protected final static Long METHOD_FIND_BY_CLASS = 1L;
protected final static Long METHOD_PERSIST = 2L;
protected final static Long METHOD_MERGE = 3L;
protected final static Long METHOD_REMOVE = 4L;
protected final static Long METHOD_REMOVE_BY_ID = 5L;
protected final static Long METHOD_GET_LIST = 6L;
protected final static Long METHOD_COUNT = 7L;
/* Classe que representa o objeto de domínio gerenciado pelo DAO. */
protected Class<T> domainClass = getDomainClass();
/* Retorna a classe do objeto de domínio gerenciado pelo DAO. */
@SuppressWarnings("unchecked")
protected Class<T> getDomainClass() {
if (domainClass == null) {
ParameterizedType thisType = (ParameterizedType) getClass().getGenericSuperclass();
domainClass = (Class<T>) thisType.getActualTypeArguments()[0];
}
return domainClass;
}
---
public interface Entity {
public Long getId();
}
---
public interface Cliente extends Entity, Comparable<Cliente> {
public void setDescription(String description);
public String getDescription();
public void setLocality(String locality);
}