java 中 BaseDao 在Hibernate中的用法
程序员文章站
2022-05-28 18:23:09
...
import java.lang.reflect.ParameterizedType; import java.lang.reflect.Type; import java.util.List; import org.hibernate.Session; import org.hibernate.SessionFactory; public abstract class BaseDao<T> { private SessionFactory sessionFactory; private Class clazz; public BaseDao() { super(); clazz = getParameterizedTypeByParent(super.getClass()); } private Class getParameterizedTypeByParent(Class clazz) { Type tp = clazz.getGenericSuperclass(); if (tp instanceof ParameterizedType) { return (Class) ((ParameterizedType) tp).getActualTypeArguments()[0]; } else { throw new ClassCastException("this is not ParameterizedType type"); } } public SessionFactory getSessionFactory() { return sessionFactory; } public void setSessionFactory(SessionFactory sessionFactory) { this.sessionFactory = sessionFactory; } public List findAll() { List results = getSession().createCriteria(clazz).list(); return results; } public T findById(Integer id) { T result = (T) getSession().get(clazz, id); return result; } public void update(T obj) { getSession().save(obj); } private Session getSession() { return sessionFactory.getCurrentSession(); } }
上一篇: 最好用的20个数据可视化工具(四)
下一篇: java多线程练习
推荐阅读
-
Java日期时间API系列5-----Jdk7及以前的日期时间类TimeUnit在并发编程中的应用
-
Linux系统中sed命令在文件某行前后添加内容的用法
-
proguar在Android混淆中的用法
-
详解Dagger2在Android开发中的新用法
-
在Java8中如何风骚走位的避开空指针异常
-
在css3中background-clip属性与background-origin属性的用法介绍
-
Hibernate中Criteria的完整用法
-
简介Linux中cp和mv搭配{,}在shell当中的用法
-
java基础 静态 static 问在多态中,子类静态方法覆盖父类静态方法时,父类引用调用的是哪个方法?
-
深入浅解正则表达式在Java中的使用