public abstract class HibernateSQLTools<T>{
      private AbstractEntityPersister classMetadata;
      proctected abstract Class<?> getTyleClass();
      proctected abstract SessionFactory getSessionFactory();      public void delSQlFromFunction(Session session){
            classMetadata = (AbstractEntityPersister ) getSessionFactory().getClassMetadata(getTyleClass());
            String tablename = classMetadata.getTableName();
             String classname = getTyleClass().getName();
             ......
        }}

解决方案 »

  1.   

    1. 第一个方法,写一个泛型的子类扩展父类
    public class  HibernateSQLToolsImpl<T> extends  HibernateSQLTools<T>HibernateSQLTools<Object> impl = new HibernateSQLToolsImpl<>();2. 第二个方法,写一个实际类型的子类扩展父类
    public class  HibernateSQLToolsImpl extends  HibernateSQLTools<Object>3. 用RAY类型 Object
    public class  HibernateSQLToolsImpl extends  HibernateSQLTools
      

  2.   

    @Repository
    public class UserDaoImpl extends HibernateSQLTools<User> implements UserDaoInter{
    @Resource(name="sessionFactory")
    private SessionFactory sessionFactory;@Override
    proctected Class<?> getTypeClass(){return User.class;}  //重写抽象类的方法,以便于为抽象类的方法赋值@Override
    proctected SessionFactory getSessionFactory{return sessionFactory;} //重写抽象类的方法,以便于为抽象类的方法赋值@Override
    public void deleteEntitys(){
    deleteSqlFromFunction(sessionFactory.getCurrentSession());
    }]