持久层抽取之类名的获取

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片段抽取

50.性能调优之重构RDD架构以及RDD持久化

Mybatis——Dao层实现映射文件深入核心配置文件深入