Обычный способ сортировки этой проблемы безопасным образом - это добавить конструктор для хранения класса этого типа. Пример в вашем контексте:
public abstract class BaseDao<T extends PersistentObject> {
private Class<T> classT;
BaseDao(Class<T> classT){
this.classT=classT;
}
protected Class<T> getClazz() {
return classT;
}
// ...
}