CommonDAOImpl中泛型使用
来源:互联网 发布:caffe官网教程 编辑:程序博客网 时间:2024/05/17 02:31
CommonDAOImpl是所有DAOImpl的父类,里面包含了所有DAO类会使用到的公共方法,比如说update(),save(),find()等方法
在查找操作时候,有这样的find()方法
public T findObjecByID(Serializable id) {
//下面的entity是相应实体类
return (T)this.getHibernateTemplate().get(entity.class, id);
}
但是这样的方法不能放在CommonDAOImpl中而只能放在相应的DAO中,因为entity.class已经写死,所以需要使用到泛型,来扩展find()方法的使用范围,更好的方法如下
public T findObjecByID(Serializable id) {
//泛型转换
ParameterizedType pt=(ParameterizedType) this.getClass().getGenericSuperclass();
Class entity=(Class) pt.getActualTypeArguments()[0];
return (T)this.getHibernateTemplate().get(entity, id);
}
我也曾想过,可不可以这样写
public T findObjecByID(Serializable id) {
//下面的entity是相应实体类
return (T)this.getHibernateTemplate().get(Object.class, id);
}
将entity.class换成Object.class
实际上这种方法是不可行的,junit测试会抛出异常
org.springframework.orm.hibernate3.HibernateSystemException: Unknown entity: java.lang.Object; nested exception is org.hibernate.MappingException: Unknown entity: java.lang.Object
因为Object类型对象实体没有映射文件关联
- CommonDAOImpl中泛型使用
- Spring 整合HibernateDaoSupport(业务Dao继承CommonDaoImpl)
- ssh中泛型的使用
- Java中泛型 使用
- java中泛型的使用
- Java中泛型的使用
- JAVA中泛型的使用
- java 中泛型的使用
- Java中泛型的使用
- Java中泛型的使用
- Java 中泛型使用
- java中泛型的使用
- java中泛型的使用
- 开发中泛型使用注意事项
- java中泛型的使用
- Java中泛型的使用
- 使用
- 使用
- 陆金所产品爬虫
- rman输出信息解释及表空间备份与在线恢复
- 23种设计模式10---组合模式
- E-珈百璃的堕落
- Git的详细使用方法适用于window Linux 以及苹果系统 网址
- CommonDAOImpl中泛型使用
- 算是新天地
- 剑指offer第四题
- 模板方法设计模式
- #1133 : 二分·二分查找之k小数
- shell基础-bash变量-用户自定义变量
- 【NOI2008T1】假面舞会-DFS环处理+最大公因数
- shell基础-bash变量-用户自定义变量
- DP 看别人的代码涨眼界