持久层抽取之类名的获取
Posted asndxj
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了持久层抽取之类名的获取相关的知识,希望对你有一定的参考价值。
package com.hdh.bos.dao.base.impl;
import java.io.Serializable;
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
import java.util.List;
import org.hibernate.Hibernate;
import org.springframework.orm.hibernate3.HibernateTemplate;
import org.springframework.orm.hibernate5.support.HibernateDaoSupport;
import com.hdh.bos.dao.base.BaseDao;
public class BaseDaoImpl<T> extends HibernateDaoSupport implements BaseDao<T> {
private Class<T> entityClass;
public BaseDaoImpl(Class<T> entityClass) {
//获取BaseDaoImpl<T> 的T类型
ParameterizedType Superclass = (ParameterizedType) this.getClass().getGenericSuperclass();
Type[] actualTypeArguments = Superclass.getActualTypeArguments();
entityClass=(Class<T>) actualTypeArguments[0];
}
@Override
public void save(T entity) {
getHibernateTemplate().save(entity);
}
@Override
public void delete(T entity) {
getHibernateTemplate().delete(entity);
}
@Override
public void update(T entity) {
getHibernateTemplate().update(entity);
}
@Override
public T fingById(Serializable id) {
return getHibernateTemplate().get(entityClass, id);
}
@Override
public List<T> findAll() {
String hql = "FROM " + entityClass.getName();
return (List<T>) getHibernateTemplate().find(hql);
}
}
以上是关于持久层抽取之类名的获取的主要内容,如果未能解决你的问题,请参考以下文章
Mybatis -- 动态Sql概述动态Sql之<if>(包含<where>)动态Sql之<foreach>sql片段抽取