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();
......
}}
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();
......
}}
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
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());
}]